Algorithm
[Oracle / 프로그래머스 SQL 연습] 중복 제거하기 - NULL 과 비교연산자/논리연산자
devkmee
2022. 2. 15. 11:52
SUM, MAX, MIN > 중복 제거하기
▶테이블 정보

▶문제
동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요.
이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
▶SQL문
SELECT COUNT(DISTINCT(NAME)) AS 이름
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
>> COUNT 함수에 DISTINCT (중복제거 기준 컬럼명) 을 적었다
>>
WHERE 절에 NAME != NULL 을 써서 오류가 났다.
비교연산자 ( != ) 는 NULL에 사용 할 수 없기 때문에 논리연산자 ( IS NOT )를 사용해야 한다고 한다
NAME 컬럼의 값을 비교하는 쿼리인데 NULL은 비교할 대상이 없어서 생긴 오류인 것 같다
논리연산자는 자바의 boolean 처럼 TRUE / FALSE 값을 반환하기 때문에 NULL이 존재하는지 존재하지 않는지 체크 할 수 있어서 쿼리가 정상적으로 실행되었다
▶실행 결과
