測試數值或日期是否落於指定區間(含邊界),回傳 1 (真) 或 0 (假)。
SELECT 2350 BETWEEN 100 AND 10000; -- 回傳 1
SELECT '2006-04-05' BETWEEN '2006-01-01' AND '2007-01-01'; -- 1
SELECT '2006-04-05' BETWEEN '2006-01-01' AND '2006-04-01'; -- 0
SELECT * FROM employees
WHERE salary BETWEEN 50000 AND 80000;
回傳參數列表中的最大值 (GREATEST) 或最小值 (LEAST),支援數值、字串、日期。
SELECT GREATEST('2000-06-01', '2000-05-29', '2000-06-04'); -- 2000-06-04
SELECT LEAST(100, 200, 50, -6, -73, 1000); -- -73
SELECT GREATEST('apple', 'banana', 'cherry'); -- 'cherry'
SELECT LEAST('apple', 'banana', 'cherry'); -- 'apple'
-- 取三個日期中最晚者作為生效日
SELECT GREATEST(contract_start, approval_date, payment_date) AS effective_date
FROM contracts;
SELECT product_id,
LEAST(warehouse_a_qty, warehouse_b_qty, warehouse_c_qty) AS min_stock
FROM inventory
WHERE LEAST(warehouse_a_qty, warehouse_b_qty, warehouse_c_qty) < 10;
SELECT student_id,
GREATEST(score_1, score_2, score_3) AS highest,
LEAST(score_1, score_2, score_3) AS lowest
FROM exam_scores;
NULL 參數會導致結果為 NULL,建議用 COALESCE() 預處理CASE WHEN 或應用層計算