NULL ๊ฐ์ ํน์ง
- NULL์ ๋ชจ๋ฅด๋ ๊ฐ์ ์๋ฏธํ๋ค.
- NULL์ ๊ฐ์ ๋ถ์ฌ๋ฅผ ์๋ฏธํ๋ค.
- NULL๊ณผ ์ซ์ ํน์ ๋ ์ง๋ฅผ ๋ํ๋ฉด NULL์ด ๋๋ค.
- NULL๊ณผ ์ด๋ค ๊ฐ์ ๋น๊ตํ ๋, '์ ์ ์์'์ด ๋ฐํ๋๋ค.
IS NULL
์ ์ฌ์ฉํ๊ณ , NULL ๊ฐ์ด ์๋ ๊ฒ์ ์กฐํํ ๊ฒฝ์ฐ์๋ IS NOT NULL
์ ์ฌ์ฉํ๋ค.SELECT [์ปฌ๋ผ๋ช
]
FROM [ํ
์ด๋ธ๋ช
]
WHERE [์ปฌ๋ผ๋ช
] IS (NOT) NULL;
์์ ๊ฐ์ ํ ์ด๋ธ์ด ์์ ๋, lowest_price ์ปฌ๋ผ ์ค NULL๊ฐ์ธ ์ปฌ๋ผ์ ์กฐํํ๊ณ ์ ํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋๋ค.
SELECT * FROM mytable
WHERE lowest_price IS NULL;
๋ฐ๋๋ก lowest_price ์ปฌ๋ผ ์ค NULL๊ฐ์ด ์๋ ์ปฌ๋ผ์ ์กฐํํ๊ณ ์ ํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋๋ค.
SELECT * FROM mytable
WHERE lowest_price IS NOT NULL;
ORACLE์์๋ NULL ๊ด๋ จ ํจ์๋ก NVL, NVL2 ๋ฑ์ด ์์ง๋ง MySQL์์๋ ๋น์ทํ ๊ธฐ๋ฅ์ผ๋ก IFNULL
, COALESCE
๊ณผ ๊ฐ์ ํจ์๋ค์ด ์๋ค.
IFNULL ํจ์๋ ํด๋น ์ปฌ๋ผ์ ๊ฐ์ด NULL์ ๋ฐํํ ๋, ๋ค๋ฅธ ๊ฐ์ผ๋ก ์ถ๋ ฅํ๋๋ก ํ๋ ํจ์์ด๋ค.
๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
SELECT IFNULL([์ปฌ๋ผ๋ช
], "๋์ฒด ๊ฐ")
FROM [ํ
์ด๋ธ๋ช
];
SELECT IFNULL(lowest_price, "๊ฐ๊ฒฉ ์ ๋ณด ์์") AS "๊ฐ๊ฒฉ"
FROM mytable;
์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ง์ง๋ง row์์ NULL๊ฐ์ ๋ฐํํ์ง ์๊ณ "๊ฐ๊ฒฉ ์ ๋ณด ์์"์ผ๋ก ์ถ๋ ฅํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
COALESCE() ํจ์๋ ์ฃผ์ด์ง ์ธ์์์ NULL ์ด ์๋ ์ฒซ๋ฒ์งธ ๊ฐ์ ๋ฐํํ๋ ํจ์๋ค.
๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
SELECT COALESCE([๊ฐ 1], [๊ฐ 2], [๊ฐ 3], ...);
SELECT COALESCE(NULL, NULL, NULL, 1);
์ธ์์๋ ๊ฐ ๋ง๊ณ ๋ ์ปฌ๋ผ๋ช
์ ์ ์ ์ ์๋ค.
SELECT COALESCE(lowest_price, "๊ฐ๊ฒฉ ์ ๋ณด ์์")
FROM mytable;