如何获取SQL Server的拆分字符串数据中的数据

时间:2014-09-10 03:18:14

标签: sql-server

表数据

1-"A11111,B22222,C33333,D44444,B22222"
2-"A11111,C33333,D44444,B22222,D44444"
3-"A11111,E55555,C33333,D44444,B22222"

如果使用

select * 
from table 
where data = 'E55555'

可以获得3号数据

由于

3 个答案:

答案 0 :(得分:0)

试试这个:

SELECT * FROM [table] WHERE [data] LIKE '%E55555%'

答案 1 :(得分:0)

此查询将帮助您处理逗号分隔数据搜索:

SELECT * FROM [table] WHERE 
[data] ='E55555' OR         -- IF record contains only this value
[data] LIKE 'E55555,%' OR   -- If record starts with the value followed by comma and others
[data] LIKE '%,E55555' OR   -- If record ends with the value preceeded by comma and others
[data] LIKE '%,E55555,%'    -- If record contains the value in middle

参考SQL Fiddle here

答案 2 :(得分:0)

还有另一个变种

SELECT * FROM [table] WHERE ','+[data]+',' LIKE '%,E55555,%'

但问题是,您所要求的将无法使用普通索引,这意味着每次查询时都会进行低效的表扫描。您可能需要考虑将逗号分隔的值分解为它们自己的列,以便您可以有效地查询它们。因为它有一个“超级”列,可以将多个数据块分成一列。