SQL Server存储过程中where子句的位字段的动态参数

时间:2016-09-23 15:18:49

标签: sql-server stored-procedures dynamic bit

尝试编写一个SQL Server存储过程,该过程接受WHERE子句中使用的位列的输入参数。

根据发送到存储过程的参数,我希望该过程能够返回信息。如果我传递0或1它工作正常。如果没有参数发送到存储过程,我想要返回所有值。

我如何做到这一点?

SELECT
    field1, field2, field3
FROM
    table1
WHERE 
    field1 = @inputParm

2 个答案:

答案 0 :(得分:0)

试试这个:

CREATE PROC TESTSP @inputParm BIT = NULL
AS
BEGIN
  Select field1 ,field2 ,field3 From table1 WHERE (field1 = @inputParm OR @inputParm IS NULL)
END

答案 1 :(得分:0)

只需在IS NULL条款中包含其他WHERE条件,例如

WHERE field1 = @inputParm OR @inputParm IS NULL