코드 저장소.

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

코테/SQL

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

slown 2023. 3. 1. 14:46

문제

 

다음은 종합병원에 등록된 환자정보를 담은 PATIENT 테이블입니다. PATIENT 테이블은 다음과 같으며 PT_NO, PT_NAME, GEND_CD, AGE, TLNO는 각각 환자번호, 환자이름, 성별코드, 나이, 전화번호를 의미합니다.

Column name Type Nullable
PT_NO VARCHAR(10) FALSE
PT_NAME VARCHAR(20) FALSE
GEND_CD VARCHAR(1) FALSE
AGE INTEGER FALSE
TLNO VARCHAR(50) TRUE

 

문제

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

 

요구사항

1.12세 이하인 여자환자

2.전화번호가 없는경우에는 'NONE' 

3.나이를 기준으로 내림차순으로 정렬 + 나이 같다면 환자이름을 기준으로 오름차순으로 정렬

 

작성답안

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

나이가 12세 이하인 여자이므로 조건절에서 넣고 (WHERE AGE <=12 AND GEND_CD = 'W')

 

전화번호컬럼에 내용이 없으면 'NONE'으로 출력하기 위해서는 ifnull을 사용한 뒤 별칭을 써서 TLNO으로 

컬럼을 정의하고 

 

마지막으로 나이를 기준으로 내림차순으로 정렬 + 환자이름을 오름차순으로 정렬하기 위해서 

order by를 써서 (ORDER BY AGE DESC,PT_NAME) 정렬하면 된다.

 

※추가적으로 공부할 내용

if , ifnull 문법