我正在尝试制作一个报告,我可以从参数中选择多个值 - 然后进行查询,我在其中声明"在哪里(@partner)"
但是,当我想创建一个值时,我的问题就会出现,而不会在(@partner)"中执行,而只会从同一个查询中选择所有问题,而不是在哪里in子句 - 因为并非我的db表中的所有行都设置了特定的值,所以我也想捕获它们。
参数的所有值都是从查询中选择的,我有一个联合,为它创建一个值,我需要选择全部 - 不使用where in。
如果只选择参数列表中的一个值,它实际上是有效的 - 但是当我尝试选择2个或更多时,我得到错误"对于dataset1,查询执行失败......& #34;
用于选择all的参数值的值是0,正如您在代码中看到的那样 - 它确实有效,因为我可以执行下面的两个select语句,但是当我从中选择多于1个值时不会参数列表。
IF @partner = 0
BEGIN
SELECT
thedata
FROM
thetable
WHERE
thedata = 3
END
ELSE
SELECT
thedata
FROM
thetable
WHERE
thedata = 3
and partner in (@partner)
END
ELSE
希望那里有一些聪明的人:)谢谢
答案 0 :(得分:0)
只是做:
SELECT thedata
FROM thetable
WHERE thedata = 3
AND (partner IN (@partner) or @partner = 0)