[HackerRank]Weather Observation Station 9 (NOT LIKE...ERROR?)

차보경·2022년 12월 2일
0

SQL

목록 보기
10/14
post-thumbnail

문제

  • 문제링크
  • 반대로 CITY 이름이 A,E,I,O,U로 시작하지 않는 것을 출력

CODE

SELECT DISTINCT CITY FROM STATION WHERE NOT (CITY LIKE 'A%' OR
                                             CITY LIKE 'E%' OR 
                                             CITY LIKE 'I%' OR
                                             CITY LIKE 'O%' OR
                                             CITY LIKE 'U%')
                                             
-- 더 깔끔 버전
SELECT DISTINCT CITY FROM STATION WHERE LEFT(CITY,1) NOT IN ('A','E','I','O','U')

배운 것

  • 오늘은 의문점...
SELECT DISTINCT CITY FROM STATION WHERE (CITY NOT LIKE 'A%' OR
                                         CITY NOT LIKE 'E%' OR
                                         CITY NOT LIKE 'I%' OR
                                         CITY NOT LIKE 'O%' OR
                                         CITY NOT LIKE 'U%')

로 풀면
이렇게 A로 시작하는 것은 포함이 된다..?

뭐지!?!?!?

해결

  1. 우선 드모르간의 법칙에서 해당하는 범위가 다르다.
  2. OR문은 하나만 만족해도 출력되는 값이라 다 나온 것 같다. 범위가 워낙 들쑥날쑥하니 컴퓨터도 정신 못차린듯...
  3. OR AND 등의 중첩문은 되도록 피하고 NOT IN 같이 깔끔한 것으로 사용하자.

참고 내용

profile
차보의 Data Engineer 도전기♥ (근데 기록을 곁들인)

0개의 댓글