【发布时间】:2013-09-10 16:56:12
【问题描述】:
我正在尝试创建一个报告,用户可以在其中选择任一参数选项,它将按所选参数过滤,或同时按两者过滤。
目前我正在使用这样的 OR 语句:
SELECT a,b
FROM table a
WHERE (a = @A) OR (b=@b)
问题是当我尝试为两者输入一个值时,它只过滤一个。如何更改它以便过滤掉每一个但同时保持仅过滤一个的能力?
【问题讨论】:
-
在哪里(a = @A 或 A 为空)和(b=@b 或 b 为空)
-
@user2460637 您应该将其添加为答案(但将其更改为
WHERE (a = @A or @A IS NULL) AND (b=@b OR @b IS NULL) -
@Sewder 你的参数值是否有行?
-
如果参数不接受
NULLs,是什么让你认为OR @A IS NULL部分会起作用?似乎您正在传递一个空白值,例如OR @a = '' -
@Sewder 不是真的,我似乎没有完全理解你在做什么。也许您可以为每个参数使用默认值(例如:
''),并在我的数据集查询中使用它
标签: sql tsql reporting-services