일반 함수 DECODE 함수

 

*DECODE 함수

-DECODE 함수는 기존 프로그래밍 언어에서 IF문이나 CASE 문으로 표현되는 복잡한 알고리즘을 하나의 SQL 명령문으로 간단하게 표현할 수 있는 유용한 기능

-DECODE 함수에서 비교 연산자는 '='만 가능

 

*사용법

 DECODE(expression | column, SEARCH1, RESULT1

                         [, SEARCH2, RESULT2, ..., ]

                         [, DEFAULT])

 

-표현식 또는 칼럼의 값이 SEARCH1 값과 일치하면 RESULT1 값을 반환, SEARCH2 값과 일치하면 RESULT2 값 반환

-일치하는 값이 없거나 NULL인 경우에는 기본값 반환

-기본값이 없는 경우에는 NULL 반환

 

 

일반 함수 NVL 확장 함수 : COALESCE 함수 예

 

*사용 예

-교수 테이블에서 보직수당이 NULL이 아니면 보직수당을 출력하고, 보직수당이 NULL이고 급여가 NULL이 아니면 급여를 출력, 보직수당과 급여가 NULL이면 0을 출력하여라.

 

 

일반 함수 NVL 확장 함수 : COALESCE 함수

 

*COALESCE 함수

-COALESCE 함수는 인수중에서 NULL이 아닌 첫 번째 인수를 반환하는 함수

 

*사용법

 COALESCE(expression-1, expression-2, ...., expression-n)

 

-expression-1 : expression-1이 NULL이 아니면 expression-1을 반환

-expression-2 : expression-1이 NULL이고 expression-2가 NULL이 아니면 expression-2를 반환

-expression-n : expression-1부터 expression-n-1까지의 값이 NULL이고 expression-1이 NULL이 아니면 expression-n을 반환

 

NVL(표현식1, NVL(표현식2, ... NVL(표현식n-1, 표현식n)...))와 유사

예)SELECT COALESCE(NULL, NULL, 10, 100, NULL) FROM DUAL;     ⇒결과 : 10

    SELECT NVL(표현식1, NVL(표현식2, NVL(표현식3, ...NVL(표현식n-1, 표현식n)...)))

 

 

 

일반 함수 NVL 확장 함수 : NULLIF 함수 예

 

*사용 예

-교수 테이블에서 이름의 바이트 수와 사용자 아이디의 바이트 수를 비교해서 같으면 NULL을 반환하고 같지 않으면 이름의 바이트 수를 반환하여라.

 

 

일반 함수 NVL 확장 함수 : NULLIF 함수

 

*NULLIF 함수

-NULLIF 함수는 두 개의 표현식을 비교하여 값이 동일하면 NULL을 반환하고, 일치하지 않으면 첫 번째 표현식의 값을 반환

 

*사용법

 NULLIF(expression1, expression2)

 

-expression1 : expression2와 비교하는 값

 

-표현식1이 표현식2와 같으면 NULL 값을 반환하는 함수

-같지 않으면 표현식1 값을 반환

예)SELECT NVL(NULLIF('A', 'A'), '널값') FROM emp;       ⇒ 결과 : '널값'

    SELECT NVL(NULLIF('A', 'B'), '널값') FORM DUAL;     ⇒ 결과 : 'A'

 

 

 

 

일반 함수 NVL 확장 함수 : NVL2 함수 예

 

*SELECT ENAME, SAL, COMM, SAL+COMM, NVL2(COMM, SAL+COMM, SAL), SAL+NVL(COMM,0) FROM EMP;

 

 

일반 함수 NVL 확장 함수 : NVL2 함수 예

 

*사용 예

-102번 학과 교수중에서 보직수당을 받는 사람은 급여와 보직수당을 더한 값을 급여 총액으로 출력하여라. 단, 보직수당을 받지 않는 교수는 급여만 급여 총액으로 출력하여라.

 

 

일반 함수 NVL 확장 함수 : NVL2 함수

 

*NVL2 함수

-NVL2 함수는 첫 번째 인수 값이 NULL이 아니면 두 번째 인수 값을 출력하고, 첫 번째 인수 값이 NULL이면 세 번째 인수 값을 출력하는 함수

 

*사용법

 NVL2(expression1, expression2, expression3)

 

-expression1 : NULL을 포함하는 칼럼 또는 표현식

-expression2 : expression1이 NULL이 아닐 때 반환되는 값

-expression3 : expression1이 NULL일 때 대체되는 값

 

 

+ Recent posts