728x90
๐ค CASE WHEN ~ THEN ~ ELSE END
์๋ก
- Oracle, MySQL ๋ฑ ๋ชจ๋ DBMS์์ ๊ฐ๋ฅํ๋ฉฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ If ~ else if ~ else์ ๊ฐ์ CASE WHEN๋ฌธ์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
- ํด๋น ์์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์ ์ค์ฑํ ์ฌ๋ถ ํ์ ํ๊ธฐ ๋ฅผ ํตํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ํ์
CASE ์ปฌ๋ผ๋ช
(์๋ต๊ฐ๋ฅ)
WHEN ์กฐ๊ฑด์ THEN ๊ฒฐ๊ณผ
WHEN ์กฐ๊ฑด์ THEN ๊ฒฐ๊ณผ
ELSE ๊ฒฐ๊ณผ
END
- WHEN์ ์๋ ํด๋น ์กฐ๊ฑด์, THEN์๋ true์ผ ๊ฒฝ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ELSE๋ ๋ชจ๋ ์กฐ๊ฑด์ ํด๋นํ์ง ์์ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๊ฐ์ ์ ์ด์ฃผ์๋ฉด ๋ฉ๋๋ค.
- ๋ง์ฝ ELSE ๋ถ๋ถ์ด ์๊ณ ์กฐ๊ฑด์ด true๊ฐ ์๋๋ผ๋ฉด NULL์ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
์์
- ์์ ๋ฌธ์ ์์ ์ค์ฑํ ์ฌ๋ถ(SEX_UPON_INTAKE์์ Neutered, Spayed๊ฐ ์์ผ๋ฉด ์ค์ฑํ๋ฅผ ํ ๊ฒฝ์ฐ)๋ฅผ ๋ํ๋ด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
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;
728x90
728x90
'Backend > DataBase' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Docker๋ฅผ ์ด์ฉํด MySQL ์ฐ๊ฒฐํด๋ณด๊ธฐ. (0) | 2023.04.30 |
---|---|
SQL์ DDL, DML, DCL, TCL (0) | 2021.01.12 |
ORACLE, MYSQL ๋ ์ง์์ ๊ฐ ๊ฐ๋ค์ ์ถ์ถํ๊ธฐ ๐ง (0) | 2021.01.07 |
Transaction์ ์ฑ์ง - ACID (0) | 2020.12.19 |
๊ฐ๋ ๋ชจ๋ธ vs ๋ ผ๋ฆฌ๋ชจ๋ธ vs ๋ฌผ๋ฆฌ๋ชจ๋ธ (0) | 2020.10.30 |