일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- codeigniter
- 맥
- 제이쿼리
- html
- Oracle
- SQL
- 자바
- 주식
- 자바스크립트
- 공모주 청약 일정
- IPO
- JavaScript
- 공모주 청약
- 리눅스
- Stock ipo
- linux
- Eclipse
- 주식 청약
- 공모주
- 6월 공모주 청약 일정
- java
- 7월 공모주 청약 일정
- Stock
- php
- MYSQL
- css
- 코드이그나이터
- jquery
- 오라클
- 주식 청약 일정
- Today
- Total
개발자의 끄적끄적
[Oracle] 오라클 decode 함수 [펌] 본문
[Oracle] 오라클 decode 함수 [펌]
오늘은 오라클에서 조건함수로 많이 쓰이는 DECODE에 대해서 포스팅해드리겠습니다.
오라클 내장함수에는 우리가 자바에 C에서 쓰는 if문과 같은 기능을 하는 DECODE라는 함수가있습니다.
즉 오라클에서의 조건문인거죠. JAVA에서 보면 IF문을 중첩해서 사용하는데 DECODE도 중첩해서 사용할 수 있어요.
먼저 기본 구분에 대해 알아볼게요.
[ DECODE 기본구문 ]
DECODE(기준값,조건1,결과1,결과2)
- 기준값이 조건1이면 결과1, 아니면 결과2
이렇게 해석할 수 있어요. 저기에서 결과2를 생략해 주셔도 되는데 생략할 경우에는 자동으로 NULL로 반환이되요.
DECODE랑 비슷한 표현식이 CASE 표현식이 있어요. CASE문은 오라클 내장함수는 아니에요.
근데 DECODE보다 표현할 수 있는 범위가 더 넓어서 많이 사용하고있어요.
[ CASE ~ WHEN 표현식 ]
CASE 대상값 WHEN 비교값1 THEN 결과1
WHEN 비교값2 THEN 결과2
ELSE 결과3
END;
- 대상값이 비교값1이면 결과1 비교값2면 결과2 그 외는 결과3 이렇게 해석이 될 수 있어요.
저걸 DECODE로 표현하면 DECODE(대상값,비교값1,결과1,비교값2,결과2,결과3);
저렇게 표현되겠죠?ㅋㅋㅋ 어떻게보면 저런 CASE기본구문은 DECODE를 사용하는게 더 깔끔해요.
[ 확장된 CASE ~ WHEN 표현식 ]
SELECT SCO
CASE WHEN SCO>=90 THEN 'A'
WHEN SCO>=80 THEN AND SCO<90 THEN 'B'
WHEN SCO>=60 THEN AND SCO<80 THEN 'C'
ELSE 'F'
FROM SCO_TABLE
SCO가 90이상이면 'A' 80~89점면 'B' 60~79점이면 'C' 그 나머지는 'F'로 해석할 수 있어요.
이와같이 DECODE로는 표현하기 힘든 조건들은 CASE WHEN구문을 사용하면 더 편하게 구현 할 수 있겠죠?
DECODE와 CASE WHEN 구문만 잘 숙지해 놓으면 쿼리에 조건식에서 문제 없이 구현 할 수 있을거에요><
담엔 다른 오라클 함수를 가지고 포스팅하겠습니다.
출처: https://jjomin.tistory.com/110 [whatEver]
'개발 > sql' 카테고리의 다른 글
[mssql] mssql 백업방법 [펌] (0) | 2019.12.07 |
---|---|
[mssql] 프로시져 확인방법[펌] (0) | 2019.12.07 |
[oracle] 오라클 between 조건식 [펌] (0) | 2019.12.06 |
[ibatis / mybatis] 조건문 사용방법 [펌] (0) | 2019.12.03 |
[iBatis] 동적쿼리 조건문 [펌] (0) | 2019.12.03 |