2022. 9. 26. 08:06ใ์ฝ๋ฉํ ์คํธ ์ฐ์ต/ํ๋ก๊ทธ๋๋จธ์ค_2022
๋ฌธ์ ์ค๋ช
ANIMAL_INS ํ ์ด๋ธ์ ๋๋ฌผ ๋ณดํธ์์ ๋ค์ด์จ ๋๋ฌผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ ์ด๋ธ์ ๋๋ค. ANIMAL_INS ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋ ๊ฐ๊ฐ ๋๋ฌผ์ ์์ด๋, ์๋ฌผ ์ข , ๋ณดํธ ์์์ผ, ๋ณดํธ ์์ ์ ์ํ, ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
NAME TYPE NULLABLE
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
์ ์ ๊ฒ์ํ์ ๋๋ฌผ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ค ํฉ๋๋ค. ๋๋ฌผ์ ์๋ฌผ ์ข , ์ด๋ฆ, ์ฑ๋ณ ๋ฐ ์ค์ฑํ ์ฌ๋ถ๋ฅผ ์์ด๋ ์์ผ๋ก ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋ ํ๋ก๊ทธ๋๋ฐ์ ๋ชจ๋ฅด๋ ์ฌ๋๋ค์ NULL์ด๋ผ๋ ๊ธฐํธ๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์, ์ด๋ฆ์ด ์๋ ๋๋ฌผ์ ์ด๋ฆ์ "No name"์ผ๋ก ํ์ํด ์ฃผ์ธ์.
์์์๋ฅผ ๋ค์ด ANIMAL_INS ํ ์ด๋ธ์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
ANIMAL_ID ANIMAL_TYPE DATETIME INTAKE_CONDITION NAME SEX_UPON_INTAKEA350276 | Cat | 2017-08-13 13:50:00 | Normal | Jewel | Spayed Female |
A350375 | Cat | 2017-03-06 15:01:00 | Normal | Meo | Neutered Male |
A368930 | Dog | 2014-06-08 13:20:00 | Normal | NULL | Spayed Female |
๋ง์ง๋ง ์ค์ ๊ฐ๋ ์ด๋ฆ์ด ์๊ธฐ ๋๋ฌธ์, ์ด ๊ฐ์ ์ด๋ฆ์ "No name"์ผ๋ก ํ์ํฉ๋๋ค. ๋ฐ๋ผ์ SQL๋ฌธ์ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋์์ผ ํฉ๋๋ค.
ANIMAL_TYPE NAME SEX_UPON_INTAKE
Cat | Jewel | Spayed Female |
Cat | Meo | Neutered Male |
Dog | No name | Spayed Female |
โป ์ปฌ๋ผ ์ด๋ฆ์ ์ผ์นํ์ง ์์๋ ๋ฉ๋๋ค.
๋์ ํ์ด [MySQL]
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID ASC;
NAME์ด NULL ์ธ ๊ฒฝ์ฐ์ No name์ด๋ผ๊ณ ํ์ํด์ผํ๋๊ฒ ์ด๋ฒ ๋ฌธ์ ์์ ์๊ตฌํ๋ ๊ฒ์ด๋ค.
CASE WHEN..์ด๋ ๊ฒ ์กฐ๊ฑด์์ผ๋ก ํ ์๋ ์๋๋ฐ ๊ฐ๋จํ๊ฒ IFNULL ํจ์๊ฐ ์๊ฐ๋์ ์ด๊ฑธ ์ฌ์ฉํ๋ค.
IFNULL ํจ์๊ฐ ๊ธฐ์ต์ด ๊ฐ๋ฌผ๊ฐ๋ฌผํด์ ์ ์๋์ง ํ๋๋ NULLIF๋ก ๊ธฐ์ตํด์ ์ฌ์ฉํ๊ณ ์์๋ค..;;..ใ ใ
์๋ฌดํผ IFNULL('์ปฌ๋ผ๋ช ', 'NULL์ผ๋ ๋์ฒด๊ฐ') ์ด๋ ๊ฒ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ด๋ ๋๋ฆ ์ฃผ์ํด์ผ ํ ์ ์ 'No name' ์คํ ๋ง๋ ์ฃผ์ํด์ ์์ฑํด์ผ ํ๋ค..!!