[Lv2] 중성화 여부 파악하기

Creating the dots·2022년 2월 10일
0

Algorithm

목록 보기
64/65
post-custom-banner

프로그래머스

나의 풀이

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

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;

IFNULL

필드값이 NULL일때, 대체값을 설정해서 조회할 수 있다.
IFNULL(칼럼명, 대체값)

SELECT email, IFNULL(nickname, 'no name') FROM users;

ISNULL

ISNULL은 괄호안에 작성할 표현이 NULL이라면 1을 리턴하고 NULL이 아니라면 0을 리턴한다.
ISNULL(값)

SELECT ISNULL(""); //0
SELECT ISNULL(null); //1
SELECT ISNULL("Hello world!"); //0

CASE WHEN

IF가 조건문이 참, 거짓인 2가지 경우로 나눌때 적합하다면 CASE WHEN은 3가지 이상의 경우로 분기를 나눠주어야할때 적합하다.

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result //ELSE문이 없다면 NULL을 리턴한다
END AS '필드명';
profile
어제보다 나은 오늘을 만드는 중
post-custom-banner

0개의 댓글