我的where子句
中有以下内容 WHERE st.State = @St
在这种情况下,@ St为NULL。如果st.State也为NULL,则不会返回TRUE。 在这种情况下,我如何做我的where子句?
我在考虑
WHERE st.State = @St AND @St IS NULL
但不确定这是否会给我带来太多好处。
答案 0 :(得分:4)
WHERE st.State = @St OR (@St IS NULL AND st.State IS NULL)
答案 1 :(得分:4)
您可以使用以下内容:
WHERE ( @St IS NULL AND st.State IS NULL ) OR ( @St = st.State)
答案 2 :(得分:2)
尝试
WHERE (st.State = @St or (st.State is NULL and @St is NULL))
答案 3 :(得分:2)
您可能需要在不同的数据库上执行不同的操作,但一种常规方法是
WHERE st.State = @St OR (@St is NULL and st.State is NULL)
答案 4 :(得分:2)
不确定你正在使用什么系统,但我喜欢SQL Server系统上的IsNull:
WHERE (IsNull(st.State,'none')=IsNull(@St,'none')
答案 5 :(得分:0)
检查一下。这将有效。
ISNULL(st.State,'')= ISNULL(@St,'')
答案 6 :(得分:0)
select column1 from Table1
where (@param is null and column2 is null)
or (column2 = @param)