1. 이름이 없는 동물의 아이디 -> IS NULL
동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
ORDER BY ANIMAL_ID
조건 : 이름이 없는 채로 들어온 동물의 ID -> WHERE NAME IS NULL
" == NULL " 의 형태는 쓸 수 없다
2. 이름이 있는 동물의 아이디 -> IS NOT NULL
동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
ORDER BY ANIMAL_ID
조건 : 이름이 없는 채로 들어온 동물의 ID -> WHERE NAME IS NOT NULL
3. NULL 처리하기 -> IFNULL
입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.
SELECT ANIMAL_TYPE, IFNULL(NAME,"No name") AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
ANIMAL_TYPE, NAME, SEX_UPON_INTAKE 조회
여기서 NAME은 NULL일 때, "No name" , NULL이 아닐 때 NAME으로 분류된다.
이때 사용하는 함수는 " IFNULL"
cf) IFNULL vs NULLIF
- IFNULL(A, B) : A가 NULL이면 B리턴, A가 NULL이 아니면 A를 리턴
- NULLIF(A,B) : A==B이면 NULL 리턴, A!=B이면 A 리턴
** ORACLE의 경우, 더 많은 함수를 쓸 수 있다!
NVL, NVL2, DECODE
- NVL(A,B) : A가 NULL이면 B 리턴, A가 NULL이 아니면 A를 리턴 (MySQL의 IFNULL과 동일)
- NVL2(A,NULL이 아닐경우 값,NULL일 경우의 값) : A, A가 NULL이 아닐 경우와 A가 NULL일 경우
- DECODE(A,IF_1, THEN_1, IF_2, THEN2, ...,default값) : 우리가아는 case문이랑 비슷, A가 IF_1이면 THEN_1, IF_2면 THEN_2 ... 없으면 default값 리턴
--NVL 사용
SELECT ANIMAL_TYPE, NVL(NAME,'No name') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
--NVL2 사용
SELECT ANIMAL_TYPE, NVL2(NAME,NAME,'No name') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
--DECODE 사용
SELECT ANIMAL_TYPE, DECODE(NAME, NULL,'No name',NAME) AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
'Computer Science > 자료구조와 알고리즘' 카테고리의 다른 글
[프로그래머스\SQL 고득점 kit] String, Date - mysql (1,2번) (0) | 2021.12.24 |
---|---|
[프로그래머스\SQL 고득점 kit] JOIN (1~4번 : mysql) LEFT OUTER JOIN 사용 (0) | 2021.12.22 |
[프로그래머스\SQL 고득점 kit] GROUP BY - 입양 시각 구하기(2) 풀이 2가지 (mysql) (0) | 2021.12.18 |
[프로그래머스\SQL 고득점 kit] GROUP BY - 입양 시각 구하기(1) 풀이 3가지 mysql (0) | 2021.12.18 |
[프로그래머스\SQL 고득점 kit] GROUP BY - 고양이와 개는 몇마리 있을까, 동명 동물 수 찾기 (mysql) (0) | 2021.12.17 |