프로그래머스 Sql 고득점 Kit Is Null 문제
이름이 없는 동물의 아이디 PGs#59039
코드 보기
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL
☝ 입력 형식
ANIMAL_INS테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.ANIMAL_INS테이블 구조는 다음과 같으며,ANIMAL_ID,ANIMAL_TYPE,DATETIME,INTAKE_CONDITION,NAME,SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
| NAME | TYPE | NULLABLE |
|---|---|---|
| ANIMAL_ID | VARCHAR(N) | FALSE |
| ANIMAL_TYPE | VARCHAR(N) | FALSE |
| DATETIME | DATETIME | FALSE |
| INTAKE_CONDITION | VARCHAR(N) | FALSE |
| NAME | VARCHAR(N) | TRUE |
| SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
🤞 출력 형식
- 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요.
- ID는 오름차순 정렬되어야 합니다.
🤟 구현 과정
- 동물의 정보중 동물의 ID를 요구하므로,
SELECT ANIMAL_ID를 사용하였다. ANIMAL_INS라는 테이블에 모든 정보가 들어있으므로,FROM ANIMAL_INS를 사용하였다.- 동물의 이름이 없는, 즉
NULL인 동물을 검색하므로,WHERE NAME IS NULL을 사용하였다. - 어차피 동물의 ID만 검색하므로, 자동으로 ID 오름차순으로 정렬된다.
ORDER BY ANIMAL_ID를 사용하여도 무방하다.
이름이 있는 동물의 아이디 PGs#59407
코드 보기
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
☝ 입력 형식
ANIMAL_INS테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.ANIMAL_INS테이블 구조는 다음과 같으며,ANIMAL_ID,ANIMAL_TYPE,DATETIME,INTAKE_CONDITION,NAME,SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
| NAME | TYPE | NULLABLE |
|---|---|---|
| ANIMAL_ID | VARCHAR(N) | FALSE |
| ANIMAL_TYPE | VARCHAR(N) | FALSE |
| DATETIME | DATETIME | FALSE |
| INTAKE_CONDITION | VARCHAR(N) | FALSE |
| NAME | VARCHAR(N) | TRUE |
| SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
🤞 출력 형식
- 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요.
- ID는 오름차순 정렬되어야 합니다.
🤟 구현 과정
- 동물의 정보중 동물의 ID를 요구하므로,
SELECT ANIMAL_ID를 사용하였다. ANIMAL_INS라는 테이블에 모든 정보가 들어있으므로,FROM ANIMAL_INS를 사용하였다.- 동물의 이름이 있는, 즉
NULL이 아닌 동물을 검색하므로,WHERE NAME IS NOT NULL을 사용하였다. - 어차피 동물의 ID만 검색하므로, 자동으로 ID 오름차순으로 정렬된다.
ORDER BY ANIMAL_ID를 사용하여도 무방하다.
NULL 처리하기 PGs#59410
코드 보기
SELECT ANIMAL_TYPE, IFNULL(NAME,"No name"), SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
☝ 입력 형식
ANIMAL_INS테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.ANIMAL_INS테이블 구조는 다음과 같으며,ANIMAL_ID,ANIMAL_TYPE,DATETIME,INTAKE_CONDITION,NAME,SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
| NAME | TYPE | NULLABLE |
|---|---|---|
| ANIMAL_ID | VARCHAR(N) | FALSE |
| ANIMAL_TYPE | VARCHAR(N) | FALSE |
| DATETIME | DATETIME | FALSE |
| INTAKE_CONDITION | VARCHAR(N) | FALSE |
| NAME | VARCHAR(N) | TRUE |
| SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
🤞 출력 형식
- 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요.
- 이름이 없는 동물의 이름은 No name으로 표시해 주세요.
🤟 구현 과정
- 동물의 정보중 동물의 종, 이름, 성별을 요구하므로,
SELECT ANIMAL_TYPE, NAME, SEX_UPON_INTAKE를 사용하였다. - 그 중,
NAME가NULL이면 No name으로 처리해주어야 하므로NAME을IFNULL(NAME,"No name")으로 변경하였다. ANIMAL_INS라는 테이블에 모든 정보가 들어있으므로,FROM ANIMAL_INS를 사용하였다.- 동물의 ID를 오름차순으로 검색하므로
ORDER BY ANIMAL_ID를 사용하였다.
🍀 Pain Points
- ISNULL(A,B)
- A가 NULL일 경우, B를 Return함.
댓글남기기