针对2个不同值的单选SQL语句

时间:2015-07-31 14:53:38

标签: sql sql-server

我有一个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语句中执行吗?

3 个答案:

答案 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 , ''))