#SQL 문을 연습하자 #Programmers
코딩테스트 연습 - 중성화 여부 파악하기
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
ORACLE & MYSQL
SELECT
ANIMAL_ID,
NAME,
(CASE
WHEN (SEX_UPON_INTAKE LIKE '%Neutered%' ) THEN 'O'
WHEN (SEX_UPON_INTAKE LIKE '%Spayed%') THEN 'O'
ELSE 'X' END) "중성화"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
*고난과 극복
- 값은 '' 싱글 쿼트, alias는 "" 더블 쿼트
- 조건이 표현 식일 때는 CASE 바로 다음에 칼럼 이름을 쓰지 않기
어떤 칼럼이 무슨 값인지에 따라 다른 값으로 나오게 만들기 위해서 CASE 문을 사용했다.
LIKE 문과 IN 은 함께 쓸 수 없다.
Neutered 이거나 Spayed 이거나 일 때 각각의 조건으로 나눠줘야 한다.
CASE 문에는 조건마다 결과를 구분할 수 있는 데,
조건의 수는 1 개여도 되고, 여러 개 여도 되며,
ELSE로 디폴트 값을 지정해주지 않아도 된다.
-- 조건 하나 & 디폴트 값 없음
SELECT
ANIMAL_ID,
NAME,
(CASE
WHEN (SEX_UPON_INTAKE LIKE '%Neutered%' ) THEN 'O'
END) "중성화"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
-- 조건 하나 & 디폴트 값 있음
SELECT
ANIMAL_ID,
NAME,
(CASE
WHEN (SEX_UPON_INTAKE LIKE '%Neutered%' ) THEN 'O'
ELSE 'X' END) "중성화"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
끝!
'개발 > 데이터베이스' 카테고리의 다른 글
[Oracle] 다른 스키마에 테이블 생성하기 (0) | 2022.08.01 |
---|---|
데이트 타임 칼럼에서 시간만 추출하기 + GROUB BY 피하기 (0) | 2022.04.09 |
Like 대소문자 비교 (0) | 2022.04.07 |
실행시간 (Execution time) vs 패치시간 (Fetch time) (0) | 2022.03.05 |
[MariaDB] 도커 컴포즈로 MariaDB 사용하기 (0) | 2022.03.05 |