T-Sql
在 WHERE 中創建一個取決於參數的 CASE
DECLARE @MyParam bit = 1 SELECT * FROM MyTable mt WHERE CASE WHEN @MyParam = 1 THEN mt.MyFK IS NULL CASE WHEN @MyParam = 0 THEN mt.MyFK IS NOT NULL END
如果我的參數為 1,如何編寫查詢以過濾 MyFK 為空的位置?它適用於簡單的 CASE 和數字
WHERE mt.MyFK = (CASE WHEN @MyParam = 1 THEN 1)
但不是’IS NULL’?
SELECT * FROM MyTable mt WHERE ( @MyParam = 1 AND mt.MyFK IS NULL ) OR ( @MyParam = 0 AND mt.MyFK IS NOT NULL )