在这里,我需要检查格式为“ a,c,e
”的字符串。当用户从复选框中选择多个选项并且在查询中我需要在当前列中对其进行检查时,会发生这种情况。
范例:
给定字符串:
'a,c,e'
需要检查给定的字符串,该列中是否存在每个单词columnA
:
columnA columnB
-------------------
a 1
b 2
c 3
d 4
e 5
f 6
g 7
h 8
如果a,c,e
存在于列中columnA
,则应使用进行检索columnB
:
预期结果:
columnA columnB
------------------
a 1
c 3
e 5
我的尝试:
select columnA,columnB from
test where columnA ='a'
or columnA = 'c'
or columnA = 'e'
我没有感觉!这是这样做的最佳方式。对于字符串值同时更改的动态查询,这也不是一件好事。
试试下面的代码:
DECLARE @COMMASEPSTR NVARCHAR(200), @SQL nvarchar(max), @STR nvarchar(100) = 'a,b,c'
SET @COMMASEPSTR= '''' + REPLACE(@STR,',',''',''') + ''''
SET @SQL = 'select columnA,columnB from
test where columnA IN ( ' + @COMMASEPSTR + ')'
EXEC sp_executesql @SQL
告诉我我在某处错了。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句