【问题标题】:I need to perform a select statement in SQL Server 2008r2 with a 'where ColumnName in (@var)'我需要在 SQL Server 2008r2 中使用“where ColumnName in (@var)”执行 select 语句
【发布时间】:2014-03-27 15:56:54
【问题描述】:

我正在编写一个 SSRS 报告,该报告将在其输入中包含由 SSRS 下拉框生成的用户名列表,并启用多选。我正在尝试在提交报告之前测试我的代码,但它不起作用。我正在做的示例代码:

declare @userList     varchar(100);

set @userList = 'domain\user1, domain\user2, domain\user3, domain\user4';

select 
    count(column)
from 
    table
where 
    userName in (@userList)

我也试过了:

set @userList = '''domain\user1'',''domain\user2'',''domain\user3'', ''domain\user4''';

无济于事。

有什么想法吗?

【问题讨论】:

    标签: reporting-services sql-server-2008-r2 in-clause


    【解决方案1】:

    当您说您尝试在将 SQL 放入报告之前对其进行测试时,这是否意味着您尝试在 SQL Server Management Studio 中运行它?如果是这样,那么简单的答案是您不能像那样测试多值参数。 TSQL 不支持它。将您的测试变量设置为单个字符串值,以便使用 SSMS 进行测试。

    【讨论】:

    • 谢谢。你知道SSRS是怎么做的吗?它会像游标一样遍历多个值吗?
    • SSRS 在查询文本中进行了一些字符串替换,它不使用游标或循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2019-03-03
    • 2011-01-12
    • 2012-08-12
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    相关资源
    最近更新 更多