T-Sql

在 WHERE 中創建一個取決於參數的 CASE

  • November 24, 2019
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 )

引用自:https://dba.stackexchange.com/questions/254024