如何在where子句中处理True,False或NULL

时间:2016-02-05 01:47:59

标签: sql

如何将此减少到只有一个where语句 @state as bit

IF @state IS NULL
    SELECT * FROM TBL WHERE name IS NULL
ELSE
    SELECT * FROM TBL WHERE name = @state

我希望我能在一个选择语句中比较True,Flase或NULL

格拉西亚斯

2 个答案:

答案 0 :(得分:3)

这不起作用吗?

SELECT * 
FROM TBL 
WHERE (@state is null and name is null) or 
      (name = @state)

另一种方法是在两种情况下都使用coalesce

答案 1 :(得分:0)

如果使用MySQL,这里有一个更简单的方法:

SELECT * FROM TBL WHERE name <=> @state;