簡體   English   中英

具有CASE / WHEN和NULL值的SQL Server 2008 WHERE子句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM