[프로그래머스] SQL 고득점 Kit - select (기타)

박채은·2023년 6월 22일
0

코딩테스트

목록 보기
43/52

12세 이하인 여자 환자 목록 출력하기

-- 12세 이하인 
-- 여자환자
-- 전화번호가 없는 경우, 'NONE'으로 출력
-- 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬

SELECT PT_NAME, PT_NO, GEND_CD, AGE, TLNO
from PATIENT
where GEND_CD='W' and AGE<=12
order by AGE DESC, PT_NAME;

전화번호가 없는 경우, 'NONE'으로 출력을 어떻게 작성해야할지 모르겠다.
찾아보니 IFNULL() 메서드가 있다는 것을 알게 되었다.

IF() / IFNULL()

  • IF(condition, value_if_true, value_if_false)
  • IFNULL(expression, alt_value)
    • expression이 NULL이면, alt_value 값으로 대체

최종 코드

SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, "NONE") AS TLNO
from PATIENT
where GEND_CD='W' and AGE<=12
order by AGE DESC, PT_NAME;

어린 동물 찾기

SELECT ANIMAL_ID, NAME
from ANIMAL_INS
where INTAKE_CONDITION != 'Aged'

/* INTAKE_CONDITION is not 'Aged' -> is not으로 작성하면 안 된다! */
  • 같지 않을 때 : !=
  • is not 이라는 구문은 없다! (is not null은 있음)

상위 n개 레코드

limit

  • limit N: 상위부터 N개의 행을 출력
  • limit start, 반환 갯수

최종 코드

  • 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성하라.(가장 위에 있는 행 하나만 출력)
SELECT NAME from ANIMAL_INS
order by DATETIME
limit 1

0개의 댓글