본 페이지는 C++ 독학을 위해 작성한 포스트입니다 풀이과정도 포함되어있지만 문법공부에 대한 비중이 있습니다.
(+ Java언어 내용도 포함되어있을 수 있습니다. )
https://school.programmers.co.kr/learn/courses/30/lessons/59409
1.문제설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.
ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION
, NAME, SEX_UPON_INTAKE 는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
2. 문제해결 접근
- SELECT 절로 동물의 (아이디)와 (이름), (중성화 여부)를 조회한다.
- 아이디 순으로 정렬한다 - ORDER BY
- 조회한 컬럼의 값이
'Neutered' 이면 'O' 로 표기 하고,
'Spayed'이면 'X'라고 표시
3.답안 : [언어 : MYSQL ]
1) CASE WHEN 사용
SELECT ANIMAL_ID, NAME,
CASE
WHEN (SEX_UPON_INTAKE LIKE '%NEUTERED%' OR
SEX_UPON_INTAKE LIKE '%SPAYED%') THEN 'O' ELSE 'X' END AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
2) IF 활용
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE LIKE '%NEUTERED%' OR SEX_UPON_INTAKE LIKE '%SPAYED%','O','X') AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID ASC
4.SQL 문법 설명
쿼리 구문에서 조건문(IF, Switch)문과 같이 특정 조건에 부합하는 컬럼값을 조회하는 경우에 CASE WHEN을 사용할 수 있다.
조건에 따라 TRUE이면 THEN의 결과값으로 조회결과를 표기하고
조건을 만족하지 않으면 디폴트값인 ELSE절의 값으로 결과를 표기한다.
# CASE문 사용 방법
CASE
WHEN 조건1 THEN 결과값1
WHEN 조건2 THEN 결과값2
WHEN 조건N THEN 결과값N
ELSE 결과값
END
- WHEN - THEN은 항상 같이 사용 되어야 한다.
- WHEN - THEN은 여러개 사용이 가능하다
- ELSE가 존재하면, 선결 조건이 만족하지 않을 시 ELSE의 결과값을 반환한다.
- ELSE가 없고 조건이 TRUE가 아니면 NULL을 반환한다.
CASE WHEN
https://info-lab.tistory.com/305
'데이터베이스 > MariaDB' 카테고리의 다른 글
백업 테이블 생성 및 데이터 백업 및 복구 (0) | 2023.08.07 |
---|---|
[MYSQL] 날짜데이터를 저장하고자 할 때의 자료형_ 날짜형(DATETIME)을 사용할까? , 문자열(VARCHAR)타입을 사용할까? (1) | 2023.03.04 |
[DataBase]정확한 연산을 위해 소수 데이터를 저장할때! Decimal()자료형에 대한 설명과 활용 (0) | 2023.03.03 |
컬럼의 NULL처리에 용이한 함수 - IFNULL() (0) | 2023.02.02 |
조인(JOIN)_JOIN의 개요 / INNER JOIN(내부 조인) (0) | 2022.11.11 |