[sql] NVL / NVL2 / DECODE

 *NVL( NVL"1"이라고 생각하면 뇌에 바로 기억될까..?? )
데이터가 NULL이면 지정된 값으로 출력하고, 아니면 그대로 출력한다.

NVL( 데이터, 지정된 값 )

SELECT NVL( A.PHONENUMBER, '없음' )
   FROM TB_MEMBER A
WHERE  A.NAME = '홍길동';
--> A.PHONENUMBER 가 NULL이면 '없음' 출력
      A.PHONENUMBER 가 NULL이 아니면 그대로 출력

*NVL2
데이터가 NULL이면 지정된 값2, NULL이 아니면 지정된 값1을 출력한다

NVL2( 데이터, 지정된 값1, 지정된 값2 )

SELECT NVL2( A.CONFRIM, 'Y', 'N' )
   FROM TB_MEMBER A
WHERE  A.NAME = '홍길동';
--> A.CONFRIM가 NULL이면 'N"을 출력
      A.CONFIRMr가 NULL이 아니면 'Y'을 출력

*DECODE
데이터가 조건값과 같을 경우 지정된 값1을 출력하고, 아닐 경우 지정된 값 2을 출력한다

DECODE( 데이터, 조건값, 지정된 값1, 지정된 값2 )

SELECT DECODE( A.GENDER, 'M', '남자','여자' )
   FROM TB_MEMBER A
WHERE  A.NAME = '홍길동';
--> A.GENDER가 'M' 경우 '남자'을 출력
      A.GENDER가 'M'가 아닐 경우 '여자'을 출력

댓글

이 블로그의 인기 게시물

[sql] 테이블 생성