我需要在select语句中拆分字符串并插入表

Mic*_*orn 6 sql t-sql

我在一个表中有一个数据.我需要将它复制到另一个表.其中一列是文本分隔的字符串.所以我正在考虑选择所有列插入get indentity值,并使用子查询基于分隔符进行拆分并将其插入另一个表.

这是数据示例

ID     Name     City       Items
1      Michael  Miami      item|item2|item3|item4|item5
2      Jorge    Hallandale item|item2|item3|item4|item5
Run Code Online (Sandbox Code Playgroud)

将" 名称"," 城市"复制到一个表获取标识并将项目拆分并复制到另一个具有"标识列值"的表

所以输出应该是

用户表

UserID Name     City
1      Michael  Miami
2      Jorge    Hallandale
Run Code Online (Sandbox Code Playgroud)

...

Items table

ItemID   UserID   Name
1        1        Item
2        1        Item2
3        1        Item3
4        1        Item4
5        2        Item
6        2        Item2
7        2        Item3
8        2        Item4
Run Code Online (Sandbox Code Playgroud)

不确定如何用T-SQL做到这一点.将举例说明答案

FIr*_*nda 6

您可以创建自定义函数以在T-Sql中拆分字符串.然后,您可以将Split函数作为JOIN的一部分与基表一起使用,以生成INSERT语句的最终结果.看看这篇文章.希望这有帮助.