我有一个SQL Server表,其中包含一个名为Category
的列。在我的用户界面中,我有一个类别的下拉列表。用户可以选择一个类别,然后单击Search
按钮按类别过滤结果。在下拉列表中,第一个选项为空白。意味着如果用户想要查看所有类别的所有记录,他可以选择空白。
在我的SQL Select中我有2个语句
IF @Catg IS NULL
Begin
Select *
From Table
End
Else
Begin
Select *
From Table
Where Catg = @Catg
End
表中的Catg
列将具有NULL或类别。这可以在单个SQL语句中执行吗?
答案 0 :(得分:3)
您可以使用execute
语句将这些子句连接在一起:
OR
答案 1 :(得分:0)
怎么样
SELECT *
FROM yourtable
WHERE (Catg = @Catg) OR (Catg IS NULL)
答案 2 :(得分:0)
可能会ISNULL
解决您的问题,这会检查值是NULL
然后是''
还是VALUE
select * from tblName
where ISNULL(Catg , '')= ISNULL(@Catg, ISNULL(Catg , ''))