프로그래머스
SELECT ANIMAL_ID, NAME,
CASE
WHEN (SEX_UPON_INTAKE LIKE 'Spayed%') THEN 'O'
WHEN (SEX_UPON_INTAKE LIKE 'Neutered%') THEN 'O'
ELSE 'X'
END AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
MySQL 조건문
IF, IFNULL, ISNULL, CASE WHEN
IF(조건문, 참일때 값, 거짓일때 값)
조건이 참 거짓으로 2가지인 경우에 사용하기 적합하다. 위의 풀이를 IF 조건문으로 작성하면 다음과 같다.
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE LIKE 'Spayed%' OR SEX_UPON_INTAKE LIKE 'Neutered%', 'O', 'X') AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
필드값이 NULL일때, 대체값을 설정해서 조회할 수 있다.
IFNULL(칼럼명, 대체값)
SELECT email, IFNULL(nickname, 'no name') FROM users;
ISNULL은 괄호안에 작성할 표현이 NULL이라면 1을 리턴하고 NULL이 아니라면 0을 리턴한다.
ISNULL(값)
SELECT ISNULL(""); //0
SELECT ISNULL(null); //1
SELECT ISNULL("Hello world!"); //0
IF가 조건문이 참, 거짓인 2가지 경우로 나눌때 적합하다면 CASE WHEN은 3가지 이상의 경우로 분기를 나눠주어야할때 적합하다.
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result //ELSE문이 없다면 NULL을 리턴한다
END AS '필드명';