본문 바로가기

반응형

문제

MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요.

구조

MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다.

예시


처음에 작성한 쿼리

select 
    member_id,
    member_name,
    gender,
    date_of_birth
from member_profile
where to_char(date_of_birth, 'mm') = '03'
    and gender = 'W'
    and tlno is not null
order by member_id

틀린 이유

Date_of_Birth를 그냥 출력해주니 시,분,초까지 같이 출력 돼서 일치하지 않게 됐었습니다. 예시를 보면 결과물에 시,분,초는 나와있지 않으니 가공을 거쳐주어야 합니다.


수정한 쿼리

select 
    member_id,
    member_name,
    gender,
    to_char(date_of_birth, 'yyyy-mm-dd') date_of_birth
from member_profile
where to_char(date_of_birth, 'mm') = '03'
    and gender = 'W'
    and tlno is not null
order by member_id

To_Char를 이용해 시,분,초를 제외시켜서 출력해 줬습니다. 

조건문은 다음과 같습니다.

  • 생일이 3월인 > to_char(date_of_birth, 'mm') = '03'
  • 여성회원 > gender = 'W'
  • 전화번호가 NULL인 경우는 출력 대상에서 제외 > and tlno is not null

 

 

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131120

반응형
댓글