我有这个表格。
ID Value
1 "10,20"
2 "101,102,103"
3 "50,60"
4 "100,200,300"
5 "81,82,83,84"
我想要这个。
ID Value
1 10
1 20
2 101
2 102
2 103
3 50
3 60
4 100
4 200
4 300
5 81
5 82
5 83
5 84
我使用的是SQL Server V18,所以我可以访问内置的 STRING_SPLIT()
功能,如果需要的话。
我是不是漏了什么? 你好像知道要用 string_split()
而且据我所知,没有任何其他的复杂情况。
select t.id, s.value
from t cross apply
string_split(value, ',') s;
你可以使用 insert
或者 into
来将数据放在另一个表中。
如果双引号实际上是值的一部分,你可以去掉它们。
string_split(replace(value, '"', ''), ',')