我有一个数据列,其值如下:
表:类型
ID|Descriptions
1 |chair/table/plates/
2 |chair2/table2/plates2/
用 "/" 分割它的 SQL 命令是什么?
预期产出
ID|Description1|Description2|Description3|
1 |chair |table |plates
2 |chair2 |table2 |plates2
我有一个数据列,其值如下:
表:类型
ID|Descriptions
1 |chair/table/plates/
2 |chair2/table2/plates2/
用 "/" 分割它的 SQL 命令是什么?
预期产出
ID|Description1|Description2|Description3|
1 |chair |table |plates
2 |chair2 |table2 |plates2
试试这个
;WITH Split_Descr ([ID],[Descriptions], xmldescr)
AS
(
SELECT [ID],
[Descriptions],
CONVERT(XML,'<Descr><desc>'
+ REPLACE([Descriptions],'/', '</desc><desc>') + '</desc></Descr>') AS xmldescr
FROM Table1
)
SELECT [ID],
xmldescr.value('/Descr[1]/desc[1]','varchar(100)') AS Descr1,
xmldescr.value('/Descr[1]/desc[2]','varchar(100)') AS Descr2,
xmldescr.value('/Descr[1]/desc[3]','varchar(100)') AS Descr3
FROM Split_Descr