IT/Database

[오라클/ORACLE]오라클 함수

또닝 2017. 4. 20. 14:21

DECODE

DECODE(컬럼, 조건1, 결과1, 

             조건2, 결과2,

                  ...

             조건N, 결과N)

컬럼이 여러 조건에 대한 각 결과를 반환한다.


SELECT EMP_NM,

DEPT_ID,

DECODE(DEPT_ID, '10', '인사부', '20', '경제부') AS DEPT_NM

 FROM EMP_INFO


결과

 EMP_NM

DEPT_ID 

DEPT_NM 

김우리

10 

인사부 

김나라 

20 

경제부 


CASE

CASE 표현식 WHEN 조건1 THEN 결과1

            WHEN 조건2 THEN 결과2

                     ...

            ELSE 결과

 END

 DECODE와 유사하지만 

 DECODE는 조건이 일치하는 경우에만 적용된다.

 CASE는 다양한 조건과 비교를 하는 경우에도 적용된다.  


 SELECT EMP_NM,

DEPT_ID,

CASE

WHEN DEPT_ID='10' THEN '인사부' 

WHEN DEPT_ID='20' THEN '경제부'

ELSE '미정'

END DEPT_NM

  FROM EMP_INFO


결과

 EMP_NM

 DEPT_ID

 DEPT_NM

김우리

10 

인사부 

김나라 

20 

경제부 

김만세 

30 

미정 


 NVL

 NVL(컬럼,NULL일때의 값)

 컬럼이 NULL일때 NULL일때의 값을 반환

 

 SELECT EMP_NM,

DEPT_ID,

NVL(DEPT_ID, '미정') AS DEPT_ID2

  FROM EMP_INFO


결과

 EMP_NM

DEPT_ID 

DEPT_ID2 

 홍길동

 

미정 


 NVL2

 NVL2(컬럼, NULL이 아닐때의 값, NULL일떄의 값)

 NVL과 DECODE의 개념이 합쳐진 함수

 컬럼이 NULL일떄와 NULL이 아닐때 각각의 값을 반환


 SELECT EMP_NM,

DEPT_ID,

NVL2(DEPT_ID, '확정','미정') AS DEPT

  FROM EMP_INFO


결과

 EMP_NM

DEPT_ID 

DEPT

김우리

10 

확정

홍길동


미정



 NULLIF

 NULLIF(표현식1, 표현식2)

 표현식1의 값과 표현식2의 값이 동일하면 NULL을 반환

                                          그렇지 않으면 표현식1을 반환


 SELECT NULLIF('HAHA', 'HAHO')

  FROM EMP_INFO


결과

HAHA

'IT > Database' 카테고리의 다른 글

[오라클/ORACLE]INDEX 생성/삭제  (0) 2017.04.26
[오라클/ORACLE]DISTINCT  (0) 2017.04.21
[오라클/ORACLE]TNS 설정  (0) 2017.04.20
[오라클/ORACLE]INSERT, UPDATE, DELETE 구문  (0) 2017.04.19
[오라클/ORACLE]OVER() 함수  (0) 2017.04.19