在我的查询中,我有一个字段Regex.IsMatch(d, @"[^\d-]")
,其中包含用分号Keywords
在我的SSRS报告中,我的一个参数;
包含该@Keywords
字段中所有可能的单个值的列表。
如何将多值参数
Keywords
传递给我的查询并检查字段@Keywords
是否包含任何选定的参数值?
我有一个拆分功能,可以将Keywords
和@Keywords
划分为各自的关键字项目,但如何在Where语句中执行此检查?
Keywords
示例
Keywords
corporate finance; compensation; financial markets
示例@Keywords
在这些示例中,Accounting,Accounting and Financial Reporting,Agriculture,airlines,corporate finance,compensation,Offshore drilling,Pharmaceuticals,portfolio,anagement
同时包含@Keywords
和corporate finance
,因此我的报告会显示与示例compensation
字段相关联的记录。
只要@Keywords包含Keywords
中我们想要该记录的任何值。
答案 0 :(得分:0)
你可能需要将它扩展到你的表选择我只需要一个概念证明来使它工作,Cross apply将帮助你打破值而不需要任何循环或游标或子查询。< / p>
declare @test as table
(
keywords varchar(100)
)
INSERT INTO @test
VALUES ('corporate finance, compensation, financial markets')
declare @keywords varchar(100) ='Accounting,Accounting and Financial Reporting,Agriculture,airlines,corporate finance,compensation,Offshore drilling,Pharmaceuticals,portfolio,anagement'
select i.RecordID as keywords
from @test a
cross apply dbo.ReturnTableOfVarchars(a.keywords) i
INNER JOIN (select * from dbo.ReturnTableOfVarchars (@keywords)) k
ON k.RecordID=i.RecordID
让我知道它是否有效。