[프로그래머스] 12세 이하인 여자 환자 목록 출력하기

J. Hwang·2025년 5월 2일

SQL practice

목록 보기
6/18

문제

PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.

Input table

PATIENT

PT_NOPT_NAMEGEND_CDAGETLNO
PT22000003브라운M1801031246641
PT22000004크롱M7NULL
...............

Output table

PT_NAMEPT_NOGEND_CDAGETLNO
한나PT22000009W1201032323117
안나PT22000018W11NONE
바라PT22000019W1001079068799
뽀뽀PT22000006W8NONE

내 풀이

Oracle과 MySQL에서 NULL 값을 처리하는 방식이 다르다.

  • Oracle
    NVL(col1, exp1)
  • MySQL
    NULLIF(col1, exp1)

Oracle

SELECT PT_NAME, PT_NO, GEND_CD,	AGE, NVL(TLNO, 'NONE')
FROM PATIENT
WHERE GEND_CD = 'W' AND AGE <= 12
ORDER BY AGE DESC, PT_NAME ASC;

MySQL

SELECT PT_NAME, PT_NO, GEND_CD,	AGE, IFNULL(TLNO, 'NONE')
FROM PATIENT
WHERE GEND_CD = 'W' AND AGE <= 12
ORDER BY AGE DESC, PT_NAME ASC;

코멘트

Chain-of-thought

  1. WHERE절로 조건 제한 (12세 이하, 여자)
  2. NULL 값의 경우 NONE으로 표시 (NVL 사용)
  3. ORDER BY로 정렬 (나이 내림차순, 이름 오름차순)

태그

SELECT Level 1


References

https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit

profile
Let it code

0개의 댓글