[英]SQL Server 2008 WHERE clause with CASE / WHEN and NULL value
我正在嘗試寫類似:
SELECT *
FROM MyTable m
WHERE m.Category = CASE WHEN @Category IS NULL THEN m.Category ELSE @Category END
基本上,如果此行具有值,則需要m.Category
等於@Category
行; 否則,我需要所有行。
但是如果m.Category
具有NULL
值,則不會發送該行,因為SQL需要一些條件WHERE m.Category IS NULL
而不是WHERE m.Category = NULL
。
因此,我該如何修改告訴SQL的請求:“如果@Category
為空(即使m.Category
為null的行),我也需要所有行,但是如果@Category
有值,我只需要m.Category
符合@Category
嗎?
您可以這樣寫:
select *
from MyTable m
where @Category is null or m.Category = @Category
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.