expr BETWEEN min AND max
min <= expr AND expr <= max
expr ๊ฐ์ด min ์ด์ max ์ดํ → 1 ๋ฐํ (True)
๋ฒ์๋ฅผ ๋ฒ์ด๋จ → 0 ๋ฐํ (False)
-- salary๊ฐ 3,000 ์ด์ 5,000 ์ดํ์ธ ์ง์ ์กฐํ
SELECT * FROM employees WHERE salary BETWEEN 3000 AND 5000;
๋ ์ง/์๊ฐ ๊ฐ ๋น๊ต
CAST()๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ํ์ ์ ๋ช ํํ ๋ณํํ๋ ๊ฒ์ด ์ข์
DATETIME์ DATE ๋น๊ต ์ DATE๋ฅผ DATETIME์ผ๋ก ๋ณํ, ๋ฌธ์์ด ๋ ์ง ๋น๊ต ์ CAST('2001-1-1' AS DATE)์ฒ๋ผ ๋ณํ ํ์
-- 2024๋
๋ด์ ์ฃผ๋ฌธ ์กฐํ
SELECT * FROM orders
WHERE order_date BETWEEN CAST('2024-01-01' AS DATE) AND CAST('2024-12-31' AS DATE);
expr NOT BETWEEN min AND max
expr < min OR expr > max
expr ๊ฐ์ด min ๋ฏธ๋ง max ์ด๊ณผ → 1 ๋ฐํ (True)
๋ฒ์๋ฅผ ๋ฒ์ด๋จ → 0 ๋ฐํ (False)
-- salary๊ฐ 3,000 ๋ฏธ๋ง์ด๊ฑฐ๋ 5,000 ์ด๊ณผ์ธ ์ง์ ์กฐํ
SELECT * FROM employees WHERE salary NOT BETWEEN 3000 AND 5000;
BETWEEN๊ณผ NOT BETWEEN ๋ชจ๋ expr ๊ฐ์ด NULL์ด๋ฉด False๋ฅผ ๋ฐํํ์ฌ ๊ฒฐ๊ณผ์์ ์ ์ธ
NULL ๊ฐ์ ํฌํจํ๋ ค๋ฉด OR expr IS NULL ์กฐ๊ฑด์ ์ถ๊ฐ
-- NULL ๊ฐ ํฌํจ
SELECT * FROM employees WHERE salary NOT BETWEEN 3000 AND 5000 OR salary IS NULL;
BETWEEN vs. >= AND <= ์ฑ๋ฅ ์ฐจ์ด
SQL ๋ด๋ถ ๋์ ๋ฐฉ์, ์ธ๋ฑ์ค ํ์ฉ์์๋ ์ฐจ์ด ์์
์์ธ๋ก, BETWEEN ์ฌ์ฉ ์ ๋ฐ์ดํฐ ํ์ ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ ์๋ฌต์ ๋ณํ์ด ๋ฐ์ํ ์ ์์ด ์ฑ๋ฅ ์ ํ ๊ฐ๋ฅ
'๐ SQL > ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์ฌ๋ฌ ์ต๋๊ฐ ์กฐํ (0) | 2025.03.14 |
|---|---|
| NULL ๊ฐ (0) | 2025.03.14 |
| COUNT (0) | 2025.03.14 |
| ๋นํธ์ฐ์ฐ์ (0) | 2025.03.07 |
| WITH ๊ณตํต ํ ์ด๋ธ ํํ์(CTE) (0) | 2025.02.24 |