我正在尝试将单列值拆分为多行,拆分文本对我来说似乎是可行的,但我也希望新行是基于另一列值创建的。
| Order_id| Customer| Product |
----------------------------------------------
| 1 | John | table, chair, cabinet |
| 2 | Bob | table, chair |
| 3 | Dylan | cabinet |
我想要的结果如下:
| Order_id| Customer| Product |
----------------------------------------------
| 1 | John | table |
| 1 | John | chair |
| 1 | John | cabinet |
| 2 | Bob | table |
| 2 | Bob | chair |
| 3 | Dylan | cabinet |
最佳答案
如果您不使用 SQL Server +12,那么 XML
节点方法可能会有所帮助。
select
Order_id, Customer,
ltrim( P.value('.', 'varchar(max)')) Product
from
(
select Order_id, Customer,
cast('<X>'+replace(Product , ',', '</X><X>')+'</X>' as xml) Product
from table
)a cross apply Product.nodes ('/X') as Product(P)
关于sql - 将单个文本单元格拆分为多行并复制其他列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48820638/