CASE, IF

JYJ·2022년 8월 11일
0

SQL / MySQL

목록 보기
19/25

CASE

  • CASE는 2가지 문법(switch문, if문)이 가능하다.

  • CASE문은 위에서 아래로 순차적으로 적용되므로 순서를 유의하여 쿼리 작성 해야한다.


switch문

  • value와 compare_value 값이 같으면 THEN절을 반환한다.

  • 만약 서로 같지 않으면 ELSE절을 반환한다.

  • 이때 ELSE절이 없으면, NULL을 반환한다.


CASE value
	WHEN compare_value THEN '반환값'
    WHEN compare_value THEN '반환값'
    ELSE 'WHEN 조건에 해당 안되는 경우 반환값'
END


SELECT nickname,
	(
    CASE nickname
    	WHEN 'a' THEN 'a가 맞다'
        WHEN 'b' THEN 'b가 맞다'
        ELSE '포함되지 않는다'
    END
    ) AS test
FROM sam
;


if문

  • WHEN 뒤의 condition의 논리값이 참이면 THEN절의 result값을 반환한다.

  • 만약 논리값이 거짓이면 ELSE절의 result값을 반환한다.

  • 이때 ELSE절이 없으면 NULL을 반환한다.


CASE
	WHEN [condition] THEN result
    WHEN [condition] THEN result
    ELSE result
END

SELECT id,
	(
    CASE
    	WHEN nickname = 'a' THEN '천룡인'
        WHEN nickname = 'c' THEN '해군'
        WHEN nickname = 'd' THEN '해적'
        ELSE '일반인'
    END
    ) AS type,
    age
FORM sam;



IF


IF()

  • IF(조건, 참일 때의 값, 거짓일 때의 값)

SELECT id, nickname, age,
	IF (age >= 20, 'old' , 'young') AS type
FROM sam;


SELECT id,
	IF (nickname is null, 'no name', nickname)
FROM sam;


IFNULL()

  • IFNULL()함수는 첫 번째 인수로 전달받은 값이 NULL인지 아닌지를 검사하여 지정한 값으로 대체하여 출력해준다.
SELECT IFNULL(nickname, '없어')
FROM sam;

profile
Study note

0개의 댓글