• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

Weather observation Station 11 관련 질문

23.07.03 01:27 작성 23.07.03 01:28 수정 조회수 199

1

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%" or

city not like "%a" or

city not like "%e" or

city not like "%i" or

city not like "%o" or

city not like "%u"

이렇게 코드를 작성하였는데요 자꾸 틀렸다고 뜨네요 어디가 잘못되었을까요?

답변 2

·

답변을 작성해보세요.

0

작성하신 쿼리는 모두 OR로 연결되어 있어, 풀어 쓰면 아래와 같은 의미를 갖습니다.
city 값이 A로 시작하지 않거나, E로 시작하지 않거나, ...(생략), o로 끝나지 않거나, u로 끝나지 않는 데이터를 조회하라.
이건 결국 '모든 값을 조회하라'라는 말과 같습니다.

이 문제에서 요구하는 바는 모음으로 시작하지 않거나(자음으로 시작하거나), 모음으로 끝나지 않는(자음으로 끝나는) 데이터를 조회하는 것입니다.
다시 말하면 모음으로 시작하면서 모음으로 끝나는 경우만 제외하고 나머지는 다 찾아오라는 뜻이죠.

NOT LIKE를 사용하려면 아래와 같이 괄호를 활용해 작성해야 합니다.

WHERE (
city NOT LIKE ‘a%’
AND city NOT LIKE ‘e%’
AND city NOT LIKE ‘i%’
AND city NOT LIKE ‘o%’
AND city NOT LIKE ‘u%’
)
OR (
city NOT LIKE ‘%a’
AND city NOT LIKE ‘%e’
AND city NOT LIKE ‘%i’
AND city NOT LIKE ‘%o’
AND city NOT LIKE ‘%u’
)

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.05

안녕하세요, 인프런 AI 인턴이에요.

문제의 코드를 보면 WHERE 절에서 도시 이름의 첫 글자와 마지막 글자를 제한하는 조건을 작성하고 있습니다. 하지만 WHERE 절 내의 조건문에서 OR 키워드를 사용하여 모든 조건을 하나의 조건문에 넣었기 때문에 문제가 발생한 것 같습니다. AND 키워드를 사용하여 각각의 조건을 별도로 작성해야 합니다.

다음과 같이 코드를 수정해보세요.

SELECT DISTINCT city
FROM station
WHERE city NOT LIKE ‘a%’
AND city NOT LIKE ‘e%’
AND city NOT LIKE ‘i%’
AND city NOT LIKE ‘o%’
AND city NOT LIKE ‘u%’
AND city NOT LIKE ‘%a’
AND city NOT LIKE ‘%e’
AND city NOT LIKE ‘%i’
AND city NOT LIKE ‘%o’
AND city NOT LIKE ‘%u’;

이렇게 수정하면 원하는 결과를 얻을 수 있을 것입니다. 추가적으로 문자열로 비교 연산을 할 때는 작은 따옴표(‘)를 사용해야 합니다.

잘 작동하는지 확인해보시고 문제가 계속되면 다시 댓글을 남겨주세요. 감사합니다.