【问题标题】:SQL command to split by "/" [duplicate]SQL命令用“/”分割[重复]
【发布时间】:2013-09-27 03:53:36
【问题描述】:

我有一个数据列,其值如下:

表格:类型

ID|Descriptions  
1 |chair/table/plates/  
2 |chair2/table2/plates2/  

用“/”分割它的 SQL 命令是什么?

预期输出

ID|Description1|Description2|Description3|  
1 |chair       |table       |plates  
2 |chair2      |table2      |plates2   

【问题讨论】:

  • 这个描述会不会只有3个/
  • 超过3个有3个或4个情况

标签: sql sql-server-2008 split


【解决方案1】:

试试这个

;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

SQL FIDDLE DEMO

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2018-07-05
    • 2015-01-20
    • 2017-09-11
    • 2016-02-13
    • 2016-02-14
    相关资源
    最近更新 更多