반응형
문제
PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.
풀이
SELECT PT_NAME, PT_NO, GEND_CD, AGE, NVL(TLNO, 'NONE') AS TLNO
FROM PATIENT
WHERE AGE <= 12
ORDER BY AGE DESC, PT_NAME ASC;
이렇게 했는데 계속 오답이라 나온다. 분명 틀린 것이 없는데 말이다. 뭐가 문제일까? 나이순으로 내림차순하고 이름별로 오름차순을 해줬다.
다시보니 WHERE 절에 '여자환자' 조건을 주지 않았다.
SELECT PT_NAME, PT_NO, GEND_CD, AGE, NVL(TLNO, 'NONE') AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD='W'
ORDER BY AGE DESC, PT_NAME ASC;
이런 문제를 풀 때는, 컬럼 순서와 조건을 하나하나 꼼꼼하게 들여다봐야한다.
반응형
'코딩 하루 1문제 프로젝트' 카테고리의 다른 글
[코딩테스트] 값을 차례대로 옮기기(대각선 패턴 만들기) (0) | 2023.12.01 |
---|---|
[프로그래머스] 문자열 출력하기 (1) | 2023.12.01 |
코딩테스트 예상문제 풀기(Java , DB) (1) | 2023.11.30 |
[프로그래머스] 경기도에 위치한 식품창고 목록 출력하기 (0) | 2023.09.25 |
[프로그래머스] 성분으로 구분한 아이스크림 총 주문량 (0) | 2023.09.24 |