NULL 값에 대해 배우다.
NULL의 특성
-- null 값에 연산을 해도 null이 됨 null은 0이 아니다.
SELECT CUST_ID
, BIRTH_DY
, BIRTH_DY + 1
FROM TB_CUST;
NULL 값에 연산을 해도 NULL은 변하지 않는다.
NVL
-- null 값을 대체할 수 있는 함수 NVL()
SELECT CUST_ID
, BIRTH_DY -- 문자형
, NVL( BIRTH_DY, '생일을 입력하세요.') AS 생년월일 -- null 값을 '생일을 입력하세요.'로 변경함
FROM TB_CUST;
NVL 함수를 사용하면 NULL 값을 대신하는 값을 적용할 수 있다.
NVL(문자형, NULL값을 대체할 값)으로 사용하면 된다.예시에서 BIRTH_DY 컬럼에 있는 값들 중 NULL 값이 '생일을 입력하세요'로 변경된 것을 볼 수 있다.
DECODE
-- DECODE( data1, data2, data3, data4 ...)
-- data1과 data2가 동일하면 data3을 출력하고, 그렇지 않다면 data4를 출력한다.
SELECT CUST_ID
, BIRTH_DY
, DECODE(BIRTH_DY, NULL, '생일을 입력하세요.', BIRTH_DY) AS 생년월일DECODE
FROM TB_CUST;
DECODE 함수는 NULL값을 처리하기만을 위해서 있는 함수는 아니지만 이 함수를 이용해서 NVL함수와 같은 결과를 도출해낼 수 있다.
'SQL-ORACLE > SELECT' 카테고리의 다른 글
[SQL] SYSDATE 날짜데이터와 형변환 (0) | 2023.07.11 |
---|---|
[SQL] REPLACE 함수 (0) | 2023.07.11 |
[SQL] TRIM 함수 (0) | 2023.07.11 |
[SQL] SUBSTR 함수 (0) | 2023.07.10 |
[SQL] UPPER 함수 (0) | 2023.07.10 |