
프로그래머스 SQL 고득점 KIT 내 IS NULL 문제
Level 2. NULL 처리하기.
동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.
오라클 답안과 MY SQL답안 및 공통 답안으로 작성함.
구문 변경을 할 수 있는지 꼭 체크하기!
[오라클] 정답 확인
SELECT ANIMAL_TYPE,
NVL(NAME,'No name') AS NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;
[MY SQL] 정답 확인
SELECT ANIMAL_TYPE,
IFNULL(NAME,'No name') AS NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;
NVL은 오라클에서만 사용하는 함수!
MY SQL에서는 NVL 대신 IFNULL 을 사용!
NVL 자리에 IFNULL 그대로 써줌.
[모두 사용 가능] CASE WHEN 정답 확인
SELECT ANIMAL_TYPE,
CASE WHEN NAME IS NULL THEN 'No name'
ELSE NAME
END AS NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC;
MY SQL과 오라클 모두 문제 없이 사용하려면 [CASE 구문]을 사용해야한다.
NVL함수와 IFNULL 모두 CASE 구문으로 변경 가능하다.
그자리 그대로 풀어쓰듯이 CASE 구문을 써주면 된다.
어려웠던 부분
NVLIFNULL함수를CASE구문으로 변경하기
(유선배 파랭이 p102)
NVL함수는 오직 오라클에서만 사용 가능.
IFNULL함수 또한 오직 MY SQL에서만 사용 가능.
상관 없이 사용할 수 있는 함수는 CASE 구문 뿐이며,
구문 변경을 할 줄 알아야하는게 POINT!
CASE 구문CASE WHEN THEN
WHEN THEN
WHEN THEN
ELSE
END코드를 입력하세요