我想将两个多值字符串相互比较,以查看其中一个值是否存在于另一个字符串中。
我有一个带有管道分隔值的 nvarchar 行的表,例如
“价值1|价值2|价值3”
我还有一个带有逗号分隔字符串的 nvarchar 变量,例如
'值 2,值 3'
到目前为止,表中的列只有一个值,我使用表函数将字符串吐出变量中,并使用 IN 子句查看该值是否在生成的表中。例如
select * from table1
WHERE column in (select val from dbo.split(@variable,','))
如果该列还包含更多值,这将不起作用。
select * from table1
WHERE (select val from dbo.split(column,'|')) in (select val from dbo.split(@variable,','))
在这里,它尝试将 2 个生成的表相互比较,但失败了。我已经尝试过使用连接,但找不到正确执行此操作的方法。我正在使用 MSSQL 2008R2