Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- postreSQL
- Query
- ORM
- stack&que
- Programmers
- Bruteforce
- 백준
- permutations
- TDD
- Git
- pytest
- stateful
- ws
- greedy
- utils
- Q objects
- dictionary
- SQL
- Python
- HTTP 완벽 가이드
- AWS
- Unit Testing
- stateless
- Gunicorn
- Stack
- combinations
- Django
- codecov
- was
- algorithm
Archives
- Today
- Total
해피 코딩!
[SQL] case 문을 사용한 조권부 쿼리 작성 본문
프로그래머스의 중성화 여부 파악하기
문제를 풀이하던 중 조건에 따른 결과값을 변환하는 SQL을 작성하기 위하여 해당 질의문을 찾아보게 되었습니다.
풀이 답
select ANIMAL_ID, NAME,
case when SEX_UPON_INTAKE = 'Neutered Male' then 'O'
when SEX_UPON_INTAKE = 'Spayed Female' then 'O'
else 'X'
end '중성화'
from animal_ins
order by animal_id
CASE
조건에 따라 값을 지정해주는 문법 입니다.
if-else
의 논리를 SQL
로 옮겨온 구조 입니다.
해당 문법은 프로그래머스에서 사용되는 MySQL
과 ORACLE
및
postgreSQL
까지 지원되는 문법 입니다.
오라클에서는 DECODE
라는 함수가 있지만, 보다 가독성이 좋은 CASE
를 추천합니다.
SELECT
, WHERE
, GROUP BY
, HAVING
모두 지원합니다.
CASE 문법 구조
CASE
-- 조건식 리턴 값
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
[WHEN ...]
-- 리턴 값
[ELSE else_result]
END
위 구문은 condition_1일 경우 result_1을 반환 condition_2라면 result_2를 그것이 아니라면 else_result를 반환하는 구문 입니다.
CASE의 표현식에서 ELSE 부분은 생략이 가능하며 ELSE가 없다면 NULL을 반환합니다.
보다 복잡한 구문은 아래 참고에 작성된 링크를 통해 postgreSQL
의 문서에 친절히 설명되어 있습니다.
참고
'SQL' 카테고리의 다른 글
[프로그래머스] SQL 코딩테스트 레벨3 (0) | 2020.12.22 |
---|---|
[SQL] JOIN (0) | 2020.12.22 |
[SQL] NULL 체크 함수 (0) | 2020.12.21 |
[프로그래머스] SQL 코딩테스트 레벨 2 (0) | 2020.12.20 |
[프로그래머스] SQL 코딩테스트 레벨 1 (0) | 2020.12.20 |
Comments