728x90
- IS NULL, IS NOT NULL
SELECT * FROM TABLE_NAME
WHERE COL_NAME IS NULL
NULL인지 아닌지 처리
- NVL, NVL2
SELECT NVL(1, 2), NVL(COL_NAME, 'a')
FROM TABLE_NAME;
COL_NAME이 NULL이면 a가 나온다.
SELECT
NVL2('A', 'B', 'C') // C
, NVL2(NULL, 'B', 'C') // 2
, NVL2(1, 2, 3) // 3
FROM TABLE_NAME;
첫번째 파라미터가 NULL이면 3번째 파라미터가, 아니면 2번째 파라미터가 나온다.
- NULLIF
SELECT NULLIF('A', 'B') // A
, NULLIF('A', 'A') // NULL
, NULLIF(2, 3) // 2
, NULLIF(2, 2) // NULL
FROM DUAL;
param1, param2 가 같으면 null, 아니면 param1이 반환된다.
- COALESCE
SELECT COALESCE('A', 'B', 'C') // A
, COALESCE(NULL, 'B', 'C') // B
, COALESCE(NULL, NULL, 'C') // C
, COALESCE(NULL, 'B', NULL) // B
FROM DUAL;
파라미터에서 NULL이 아닌 첫번째 값이 나온다. 단, 파라미터들의 형태가 같아야한다.
- DECODE
- CASE
SELECT CASE NVL(NULL, 'C')
WHEN 'A' THEN 'A'
WHEN 'B' THEN 'B'
WHEN 'C' THEN 'C'
ELSE 'NOT FOUND' END // C
FROM DUAL;
케이스문으로 처리하는 방법, 만약 ELSE가 없다면 NULL을 반환한다.
'Dev > SQL' 카테고리의 다른 글
SQL - 날짜 출력 방법 (0) | 2024.03.02 |
---|