인프런 커뮤니티 질문&답변

박서현님의 프로필 이미지

작성한 질문수

초보자를 위한 BigQuery(SQL) 입문

2-6. 연습 문제 10~12번

2-6. 연습문제 12번

해결된 질문

24.07.31 10:18 작성

·

56

0

연습문제 풀던 중에 궁금한 게 생겨서 여쭤봅니다!

12번에서 단일 포켓몬 중 많은 타입 1을 구할 때, 지금 데이터에선 type2가 null인 경우만 있지만, type1도 null인 경우도 있다고 가정하면,

where

(type2 is null) or (type1 is null)

처럼 or 조건으로 표현하면 될까요?

답변 1

1

카일스쿨님의 프로필 이미지
카일스쿨
지식공유자

2024. 07. 31. 13:39

서현님 안녕하세요. 두 컬럼(type1, typ2) 중 하나라도 NULL인 경우를 찾고 싶을 때 말씀하신대로 괄호를 쓰신 후 OR을 쓰시면 되어요. 둘 다 NULL인 경우엔 AND를 사용하면 됩니다

함수가 궁금하실 때 CTE를 사용해서 가상의 데이터를 만들고 내가 예상한 결과와 동일하게 나오는지 확인해보시면 도움이 되어요(공식 문서에도 CTE로 데이터를 만드는 부분에 대해 나와있어요)

 

쿼리 예시

WITH pokemon_data AS (
  SELECT 'Bulbasaur' AS name, 'Grass' AS type1, 'Poison' AS type2
  UNION ALL SELECT 'Charmander', 'Fire', NULL
  UNION ALL SELECT 'Squirtle', 'Water', NULL
  UNION ALL SELECT 'Pikachu', 'Electric', NULL
  UNION ALL SELECT 'Mew', 'Psychic', NULL
  UNION ALL SELECT 'MissingNo', NULL, NULL  -- 가상의 포켓몬, type1이 NULL
)

SELECT *
FROM pokemon_data
WHERE (type1 IS NULL) OR (type2 IS NULL)

 

결과

스크린샷 2024-07-31 오후 1.38.46.png