[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'가 아닐 경우 '여자'을 출력
댓글
댓글 쓰기