❓문제
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.
예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면
이름이 없는 채로 들어온 동물의 ID는 A368930입니다. 따라서 SQL을 실행하면 다음과 같이 출력되어야 합니다.
🤔풀이 방법 고민해보기
ANIMAL_ID 가 출력되어야함 → select
ANIMAL_INS 테이블에서 → from
이름이 없는 동물 = NAME이 NULL값인 동물 → where
ID기준 오름차순 → order by
👩🏻💻나의 코드
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME is NULL
ORDER BY ANIMAL_ID
처음에 WHERE NAME = NULL이라고 했었다
=가 아니라 is였다
SQL에서 NULL은 특별한 의미를 갖습니다. NULL은 "값이 없음" 또는 "알려지지 않음"을 나타내는 특별한 키워드이며, 일반적인 값과 같은 방식으로 비교할 수 없습니다.
따라서 NULL을 비교할 때는 = 연산자를 사용할 수 없습니다. 대신 IS NULL 또는 IS NOT NULL을 사용하여 NULL 값 여부를 체크해야 합니다.
아래는 두 문장의 차이점을 간략하게 정리한 것입니다:
- WHERE NAME = NULL: 잘못된 문법입니다. NULL과 일반적인 값과의 비교는 항상 FALSE로 평가됩니다.
- WHERE NAME IS NULL: 올바른 문법입니다. NAME 컬럼의 값이 NULL인 경우를 검색합니다.
따라서 이름이 없는 동물의 ID를 찾기 위해서는 WHERE NAME IS NULL을 사용해야 합니다.
✅다른 사람 코드
-똑같음-
출처: https://school.programmers.co.kr/learn/courses/30/lessons/59039
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'MySQL > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 여러 기준으로 정렬하기 (1) | 2023.10.17 |
---|---|
[프로그래머스] 동물의 아이디와 이름 (0) | 2023.10.17 |
[프로그래머스] 어린 동물 찾기 (1) | 2023.10.13 |
[프로그래머스]아픈 동물 찾기 (0) | 2023.10.11 |
[프로그래머스] 역순 정렬하기 (0) | 2023.10.11 |