Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按一个或两个参数筛选查询_Sql_Tsql_Reporting Services - Fatal编程技术网

Sql 按一个或两个参数筛选查询

Sql 按一个或两个参数筛选查询,sql,tsql,reporting-services,Sql,Tsql,Reporting Services,我正在尝试创建一个报告,用户可以在其中选择任何一个参数选项,然后它将按所选参数进行过滤,或者同时按这两个参数进行过滤 目前我使用的OR语句如下: SELECT a,b FROM table a WHERE (a = @A) OR (b=@b) 问题是当我尝试为两个输入一个值时,它只按一过滤。我如何更改它,使它将过滤掉每一个,但同时保持只过滤一个的功能?其中(a=@a或a为空)和(b=@b或b为空)@user246037您应该添加它作为答案(但将其更改为其中(a=@a或@a为空

我正在尝试创建一个报告,用户可以在其中选择任何一个参数选项,然后它将按所选参数进行过滤,或者同时按这两个参数进行过滤

目前我使用的OR语句如下:

   SELECT a,b
   FROM table a
   WHERE (a = @A) OR (b=@b)

问题是当我尝试为两个输入一个值时,它只按一过滤。我如何更改它,使它将过滤掉每一个,但同时保持只过滤一个的功能?

其中(a=@a或a为空)和(b=@b或b为空)@user246037您应该添加它作为答案(但将其更改为
其中(a=@a或@a为空)和(b=@b或@b为空)
@Sewder,您的参数值有行吗?。如果参数不接受
NULL
s,是什么让您认为
或@A为NULL
部分会起作用呢?。看起来您传递的是一个空白值,类似于
或@A='
@Sewder不是真的,我似乎没有完全理解您在做什么g、 也许您可以为每个参数使用一个默认值(例如:
),并在我的数据集queryWHERE(a=@a或a为NULL)和(b=@b或b为NULL)@user246037您应该将其添加为答案(但将其更改为
,其中(a=@a或@a为NULL)和(b=@b或@b为NULL)
@Sewder,您的参数值有行吗?。如果参数不接受
NULL
s,是什么让您认为
或@A为NULL
部分会起作用呢?。看起来您传递的是一个空白值,类似于
或@A='
@Sewder不是真的,我似乎没有完全理解您在做什么g、 也许您可以为每个参数使用默认值(例如:
'
),并在我的数据集查询中使用该值
WHERE (a = @A or @A IS NULL) AND (b=@b OR @b IS NULL)