๐ป[SQL] Null ์ผ ๊ฒฝ์ฐ Default ๊ฐ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
ํ ์ด๋ธ์ ์ปฌ๋ผ๊ฐ์ด NULL ์ผ ๊ฒฝ์ฐ Default ๊ฐ์ ๋ฃ์ด ์ฃผ์ด์ผ ํ ๊ฒฝ์ฐ๊ฐ ์๊น๋๋ค. outer join์ ํ์ ๋ ์ผ๋ถ row์ ํ๋ ๊ฐ์ด null์ผ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋๋ฐ ์ด๋ฅผ IFNULL()๋ฅผ ํตํด์ default ๊ฐ์ ์ง์ ํด์ค ์ ์์ต๋๋ค.
MySQL์์๋ IFNULL๋ก
My Sql ์ ๊ฒฝ์ฐ์ IFNULL('Data','Default Value') ๋ฅผ ์ฌ์ฉํ๋ค.
๋ฌธ๋ฒ
-- ๋ฌธ๋ฒ
IFNULL(expression_1,expression_2);
-- ์์
SELECT
a.id, a.name, IFNULL(b.cnt ,0) as cnt
FROM
table_a a
LEFT JOIN table_b b ON a.id = b.id
WHERE
a.id = input_data.id
๋๋ ๋ค์ ๊ณผ ๊ฐ์ด COALESCE() ํจ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
SELECT
a.id, a.name, COALESCE(b.cnt ,0) as cnt
FROM
table_a a
LEFT JOIN table_b b ON a.id = b.id
WHERE
a.id = input_data.id
MS-SQL, Oracle, SQL ์๋ฒ์์๋ ์ฌ์ฉ๋๋ NULLํจ์๊ฐ ์์ต๋๋ค. ์๋ ๋งํฌ๋ฅผ ํตํด ์ฐธ๊ณ ํด์ฃผ์ธ์.
Reference
'DB > Mysql' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ป [SQL] ๋ ์ง์ ์๊ฐ(DATE and TIME) ์๋ฃํ (0) | 2022.07.19 |
---|---|
๐ปRDB ์ NoSQL์ ์ฐจ์ด์ (0) | 2022.06.16 |
๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2021.11.03 |
๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2021.11.03 |
๊ฐ๋ ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2021.11.02 |