小编Dav*_*gue的帖子

在 SQL Server Business Intelligence Development Studio 中将多值参数转换为临时表

我想在 MS SQL Server BIDS(SSMS 和 Visual Studio)中创建一个报告。用户将输入电子邮件地址列表作为参数。所以@pEmails 将是“foo@bluh.com”、“bar@meh.org”等。这些电子邮件地址可能在也可能不在表中。

我可以简单地做:

and Table.Email in (@pEmails)

这行得通,除非我还需要返回电子邮件地址(如果找不到)。所以结果将是这样的:

|email       |found in table|  
|------------|--------------|  
|foo@bluh.com|  Y           |  
|bar@meh.org |  N           |
Run Code Online (Sandbox Code Playgroud)

我想我可以将输入的值列表作为@pEmails 参数并用它们创建一个临时表,然后我可以将其加入,但我这样做的尝试没有成功。

declare @pEmails table (EmailAddress varchar(255));
insert into @pEmails values (@ReportParameter1);

select
*
from
@pEmails
Run Code Online (Sandbox Code Playgroud)

如果只将单个值放入@ReportParameter1,则上述方法有效,但如果其中包含多个值,则无效。

我正在使用 SQL Server 2008。有关如何最好地进行的任何建议?

sql-server parameters bids temp-tables sql-server-2008

2
推荐指数
1
解决办法
1983
查看次数