Language/Databases / / 2023. 2. 8. 10:54

[Mysql] 조건문 IF, IFNULL, ISNULL, NVL, CASE WHEN, 정리 사용법

반응형

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 은 한 쌍으로 같이 있어야 한다.

사용하다 보면 가장 많이 빈번하게 많이 사용되는 구문이다.


 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유