문제

https://school.programmers.co.kr/learn/courses/30/lessons/132201

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

정답 코드

-- COALESCE() 함수 사용
SELECT PT_NAME, PT_NO, GEND_CD, AGE, COALESCE(TLNO, 'NONE') AS TLNO
FROM patient
WHERE AGE <=12 AND GEND_CD = 'W' 
ORDER BY AGE DESC, PT_NAME ASC;

-- CASE 문 사용
SELECT PT_NAME, PT_NO, GEND_CD, AGE, 
    CASE 
        WHEN TLNO IS NULL THEN 'NONE'
        ELSE TLNO
    END AS TLNO
FROM patient
WHERE AGE <=12 AND GEND_CD = 'W' 
ORDER BY AGE DESC, PT_NAME ASC;

 


 

배운 점

 

1. COALESCE() 함수

  • '합치다' 라는 의미 
  • 여러 개의 인수를 받아 첫 번째로 NULL이 아닌 인수를 반환
    = 따라서 COALESCE(TLNO, 'NONE') 는 NULL 을 'NONE' 을 반환하고, 그 외는 반환 
  • IS NULL 을 사용 & 조건문 일 때, 간단하게 표현할 수 있는 코드

 

2. CASE 문

  • 문법
CASE 
    WHEN TLNO IS NULL THEN 'NONE'
    ELSE TLNO
END AS TLNO
  • IF ~ ELSE 문을 SQL 식으로 직관적으로 표현한 것 
  • 꼭 IS NULL 이 아니더라도 다양한 상황에서 활용 가능 
  • WHERE 문이 아니라 SELECT 문에서 사용해야 함을 주의

'Algorithm & SQL > Oracle' 카테고리의 다른 글

[SELECT] 타입이 DATE 일 때 처리 방법 | 정렬  (0) 2024.01.09

문제

https://school.programmers.co.kr/learn/courses/30/lessons/144853

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

정답 코드

SELECT BOOK_ID, TO_CHAR(PUBLISHED_DATE, 'YYYY-MM-DD')
FROM book
WHERE CATEGORY = '인문' AND TO_CHAR(PUBLISHED_DATE, 'YYYY') = '2021'
ORDER BY PUBLISHED_DATE ASC;

 


 

배운 점

 

1. 타입이 DATE 일 때 처리 방법

  • 타입이 DATE = CHAR로 타입을 바꾸는 척 해야 처리 가능! 
    • 출력되는 형식 변경: TO_CHAR(PUBLISHED_DATE, 'YYYY-MM-DD')
    • 값 중 일부 글자가 특정 글자에 해당하는 값만 필터링: TO_CHAR(PUBLISHED_DATE, 'YYYY') = '2021'

 

2. 정렬

  • ORDER BY 까먹지 말자. 오름차순은 ASC, 내림차순은 DESC
    • ORDER (X), ARRANGE(X), SORT(X) 

'Algorithm & SQL > Oracle' 카테고리의 다른 글

[Select] COALESCE() 함수 | CASE 문  (1) 2024.01.09

+ Recent posts