开发者社区> 问答> 正文

在 SQL Server 中有什么方法可以将列数据拆分为多行?

在 SQL Server 中有什么方法可以将列数据拆分为多行?

展开
收起
贺贺_ 2019-12-02 19:37:32 661 0
1 条回答
写回答
取消 提交回答
  • 使用DelimitedSplit8K (https://www.sqlservercentral.com/articles/tally-oh-an-improved-sql-8k-“csv-splitter”-function)

    ;
     with cte as 
    ( 
    select id, prodlines, ItemNumber, Item = ltrim(Item), 
    grp = dense_rank() over (partition by id order by replace(replace(ltrim(Item), '(Read)', ''), '(Write)', '')) 
    from #prodLines pl 
    cross apply dbo.DelimitedSplit8K(prodlines, ',') c 
    ) 
    select id, prodlines, prod = stuff(prod, 1, 1, '') 
    from cte c 
    cross apply 
    ( 
    select ',' + Item 
    from cte x 
    where x.id = c.id 
    and x.grp = c.grp 
    order by x.Item 
    for xml path('') 
    ) i (prod)
    
    
    2019-12-02 19:38:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载