代码之家  ›  专栏  ›  技术社区  ›  Wayne E. Pfeffer

我需要在SQL Server 2008r2中使用“where ColumnName in(@var)”执行select语句

  •  1
  • Wayne E. Pfeffer  · 技术社区  · 11 年前

    我正在编写一个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''';
    

    但没有用。

    有什么想法吗?

    1 回复  |  直到 11 年前
        1
  •  1
  •   JC Ford    11 年前

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