我在存储过程中定义了3个参数@A,@B,@C
后面我在写筛选语句的时候需要判断这3个参数是否为空,为空的话WHERE条件中就不加,不为空就加
例:如果都不为空
SELECT *
FROM TABLE1
WHERE A= @A
AND B=@B
AND C=@C
如果@B为空,则语句为
SELECT *
FROM TABLE1
WHERE A= @A
AND C=@C
实现这样需要怎么写啊?
后面我在写筛选语句的时候需要判断这3个参数是否为空,为空的话WHERE条件中就不加,不为空就加
例:如果都不为空
SELECT *
FROM TABLE1
WHERE A= @A
AND B=@B
AND C=@C
如果@B为空,则语句为
SELECT *
FROM TABLE1
WHERE A= @A
AND C=@C
实现这样需要怎么写啊?
FROM TABLE1
WHERE (1 = (case when @A is Null then 1 else 0 end) or (A= @A ))
AND (1 = (case when @B is Null then 1 else 0 end) or (B= @B ))
AND (1 = (case when @C is Null then 1 else 0 end) or (C= @C ))
WHERE A=isnull(@A, A)
AND B=isnull(@B, B)
AND C=isnull(@C, C)