以逗号分隔字符串

时间:2019-10-09 08:06:05

标签: sql sql-server split sql-server-2017

哪种是用逗号分隔字符串并获取每个值的最佳方法? 例子

@variable = john,emma,walter, ... , dallas,

然后采用单个值,例如...

john
emma
walter
...
dallas

我需要每个值来动态创建以下选择语句:

select * from tableName where john = ... and emma = ... //etc...

谢谢大家

解决方案How to split a comma-separated value to columns有所不同,因为它吐入了列...我需要为select / where语句使用每个值...

2 个答案:

答案 0 :(得分:1)

使用变量表并与之连接

Declare @SplitDate Table(
    DataValue NVARCHAR(100)
)
DECLARE @variable NVARCHAR(MAX)  = 'john,emma,walter,dallas'
INSERT INTO @SplitDate(DataValue)

SELECT value FROM STRING_SPLIT(@variable, ',');


SELECT * FROM @SplitDate

答案 1 :(得分:0)

反之亦然。您应该搜索的是...

WHERE 
    ',' + 'john,paul,ringo,george' + ',' LIKE '%,' + myfield + ',%'

请注意,我附加了额外的语音标记集,因此您可以使用变量中的列表,例如

WHERE 
    ',' + @mylist + ',' LIKE '%,' + myfield + ',%'