반응형
NULLIF(expr1, expr2)
expr1 값과 expr2 값이 같은 경우 널을 반환한다.
expr1 값과 expr2 값이 다른 경우 expr1 값을 반환한다.
NVL(컬럼, expr)
컬럼값이 널일 경우, expr을 반환하는 함수
널이 아니면 컬럼값을 반환한다.
컬럼이라고 적어놨지만 컬럼만 들어갈 수 있는건 아니다. 값이면 뭐든 들어올 수 있다.
NVL2(컬럼, 값1, 값2)
컬럼값이 널이 아닌 경우, expr1을 반환한다.
컬럼값이 널인 경우, expr2를 반환한다.
COALESCE(expr1, expr2, expr3...)
NVL의 확장판
- expr1이 널이 아니면 expr1을 반환한다.
- expr1이 널이면 COALESCE(expr2, expr3...)를 반환한다.
- 널이 아닌 값이 나올떄까지 무한 반복
DECODE(컬럼, 조건1, 값1, 조건2, 값2...)
"CASE 컬럼 (WHEN 조건 THEN 결과)..." 와 같은 방식이다.
더 짧게 적는거라고 생각하면 된다.
ELSE 기능은 마지막에 조건없이 값만 적으면 ELSE로 처리된다.
ELSE가 안적힌 경우, 조건에 맞는게 없으면 NULL이 나온다.
CASE~WHEN~THEN~ELSE
조건문이다.
조건문 배울때 예제로 자주 나오는 성적 커트라인으로 예시 작성
CASE 점수
WHEN 점수 >= 90 THEN 'A'
WHEN 점수 >= 80 AND 점수 < 90 THEN 'B'
...
ELSE 점수 'F'
조건에 맞는게 없는데 ELSE도 없는 경우 NULL이 나온다.
반응형
'백엔드 > SQLD' 카테고리의 다른 글
제약조건[CHECK] (0) | 2020.11.22 |
---|---|
제약조건[IDENTITY] (0) | 2020.11.22 |
GROUP BY, GROUPING SETS, ROLLUP, CUBE (0) | 2020.11.22 |
TRUNC, CEIL, FLOOR, ROUND (0) | 2020.11.18 |
IN, NOT IN, EXISTS, NOT EXISTS에서 NULL의 동작 (0) | 2020.11.11 |
댓글