我需要 WHERE 子句來更改遇到 NULL 時它正在評估的列。例如,我正在嘗試做這樣的事情:
SELECT *
FROM customer c
WHERE CASE WHEN c.cust_id_1(@variable) IS NOT NULL THEN c.cust_id_1 = @variable
ELSE CASE WHEN c.cust_id_2(@variable) IS NOT NULL THEN c.cust_id_2 = @variable
ELSE c.cust_id_3 = @variable
這樣的事情可能嗎?3 個 cust_id 之一不會為 NULL。
uj5u.com熱心網友回復:
這似乎不是最佳的桌子設計,但不是COALESCE你所追求的簡單嗎?
WHERE @variable = COALESCE(cust_id_1, cust_id_2, cust_id_3);
uj5u.com熱心網友回復:
你不需要一個CASE運算式,你只需要邏輯運算子
SELECT *
FROM customer c
WHERE
(c.cust_id_1 IS NOT NULL AND c.cust_id_1 = @variable)
OR
(c.cust_id_2 IS NOT NULL AND c.cust_id_2 = @variable)
OR
(c.cust_id_3 IS NOT NULL AND c.cust_id_3 = @variable)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/478964.html
