문제 파악

- 출력할 컬럼 : ANIMAL_TYPE, NAME, SEX_UPON_INTAKE ⇒ SELECT
- 데이터를 가져올 테이블 : ANIMAL_INS ⇒ FROM
- 조회 순서 : ANIMAL_ID 순 ⇒ ORDER BY
- 요구 조건 : 이름이 없는 동물의 이름은 "No name"으로 표시
NULL을 처리하는 여러 가지 방법
✅ IFNULL
format : IFNULL(컬럼명, 대체할 값)
→ 해당 컬럼에 NULL이 있으면 대체할 값을 출력
IFNULL(NAME, "No name")
✅ IF
format : IF(조건식, 두 번째 인자, 세 번째 인자)
→ 만약, 조건식이 True 이면 두번째 인자를, false이면 세 번째 인자를 반환
→ IF(컬럼명 is null then 대체할 값) : 만약 컬럼명이 null이면 대체할 값을 출력
→ IF(컬럼명 is not null, 1, 2) : 만약 컬럼명이 null이 아니면 1을 null이면 2를 출력
SELECT IF(Name IS NULL then “No name”) ;
SELECT IF(Name IS NOT NULL, NAME, “No name”) ;
✅ COALESCE
format : COALESCE(컬럼명, 대체할 값)
→ 해당 컬럼에 NULL이 있으면 대체할 값을 출력
COALESCE(NAME, "No name")
⭐ COALESCE 사용법 2
format : COALESCE(컬럼1, 컬럼2, 대체할 값)
→ 컬럼1의 값이 NULL이면 컬럼 2의 값을 출력, 컬럼 2의 값이 NULL이면 대체할 값을 출력
COALESCE(NAME, ID, "No name")
문제 해결

> 완성 코드
SELECT ANIMAL_TYPE, IFNULL(NAME, "No name") as NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS;'Technique > MySQL' 카테고리의 다른 글
| [Lv.2] 재구매가 일어난 회원 리스트 [group by, having, count] (0) | 2024.05.06 |
|---|---|
| [Lv.2] 중복 제거하기 [count, distinct] (0) | 2024.05.06 |
| [Lv.2] 동명 동물 수 찾기 [group by, having] (0) | 2024.04.09 |
| [Lv.2] 이름에 el이 들어가는 동물 찾기 [where] (0) | 2024.04.09 |
| [Lv.1] 여러 기준으로 정렬하기 [select, order by desc] (4) | 2024.04.09 |