반응형
IF
IF(조건문, true 일 때 값, false 일때 값)
기본 방식은 기존의 다른 언어들의 IF와 비슷하다. 중첩 IF 도 가능하며 값이 아닌 다른 컬럼을 출력할 수도 있다.
SELECT IF( column_name is null, column_B, column_A) as A FROM table_name
SELECT IF( column_name > 0 , 'true', 'false') as A FROM table_name
IFNULL
IFNULL(column, value)
컬럼의 값이 NULL 일 경우 지정한 값으로 출력해 준다. IF 와 마찬가지로 중첩해서도 사용할 수 있다. 사용법의 간단한 예제는 아래와 같다.
SELECT IFNULL( column_name, 'A') as A FROM table_name
SELECT IFNULL( column_A, IFNULL(column_B, 'C') as A FROM table_name
ISNULL
ISNULL(column_name, value)
IFNULL과 동작 방식은 같다. 컬럼의 값이 NULL 이라면 지정한 값으로 출력한다.
SELECT ISNULL(column_name, 0) as A FROM table_name
NVL
NVL(column_name, value)
NVL 도 IFNULL, ISNULL 과 동작 방식은 같다.
column_name의 값이 NULL 일 경우 'A'를 출력하고 NULL이 아니라면 column_name의 값을 출력한다.
SELECT NVL(column_name, 'A') as A FROM table_name
CASE WHEN
SELECT
CASE
WHEN STATUS_CD = 'STOP'
THEN '중단'
WHEN STATUS_CD = 'ING'
THEN '진행중'
WHEN STATUS_CD = 'END'
THEN '종료'
ELSE '사용전'
END as STATUS_NM
FROM table_name
조건 또는 값에 따라서 출력하고자 하는 값이 다를때 사용한다.
ELSE 는 모든 조건이 아닐때 출력되는 값을 지정한다. ELSE 는 없어도 된다. 하지만 WHEN 과 THEN 은 한 쌍으로 같이 있어야 한다.
사용하다 보면 가장 많이 빈번하게 많이 사용되는 구문이다.
반응형