2025.02.06(Thu.)
[오늘의 알고리즘 1문제] - 프로그래머스 MySQL
<Null 처리하기>
입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.
마지막 줄의 개는 이름이 없기 때문에, 이 개의 이름은 "No name"으로 표시합니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
| ANIMAL_TYPE | NAME | SEX_UPON_INTAKE |
| Cat | Jewel | Spayed Female |
| Cat | Meo | Neutered Male |
| Dog | No name | Spayed Female |
<내가 작성한 코드>
SELECT ANIMAL_TYPE,
COAlESCE(NAME, 'No name') AS NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
정답입니당.
<복습할 내용>
1. COALESCE는 보통 컬럼을 병합할 때, 사용한다.
SELECT A,B
,COALESCE(A,B)
FROM TEST
위와 같이 사용하게 되면, 함수는 두 개의 인자값을 받는다.
A컬럼의 0번째 행이 NULL이라면 해당 값은 같은 줄에 있는 B컬럼의 값으로 대체된다.
반대의 경우도 동일하다. 두 값이 모두 NULL이라면 NULL이 반환되고, 두 값이 모두 NULL이 아니라면 A값이 반환된다.
COALESCE는 다른 방식으로도 사용 가능하다!
SELECT COALESCE(A, '---')
FROM TEST
위와 같이 작성하면 A칼럼의 NULL 값을 '---'안에 작성한 값으로 대체할 수 있다.
칼럼을 병합하지 않고 하나의 칼럼 안에 있는 NULL값을 다른 값으로 바꾸고 싶을 때 사용한다.
오늘의 문제에 적용한 방식처럼 말이다.
'Develop > Daily Algorithm Practice 공략집' 카테고리의 다른 글
| [오늘의 알고리즘 1문제] - <강원도에 위치한 생산공장 목록 출력하기> (0) | 2025.02.10 |
|---|---|
| [오늘의 알고리즘 1문제] - <경기도에 위치한 식품 창고 목록 출력하기> (0) | 2025.02.07 |
| [오늘의 알고리즘 1문제] - <가장 비싼 상품 구하기> (0) | 2025.02.05 |
| [오늘의 알고리즘 1문제] - <나이 정보가 없는 회원 수 구하기> (0) | 2025.02.04 |
| [오늘의 알고리즘 1문제] - <이름에 el이 들어가는 동물 찾기> (0) | 2025.02.03 |