数据库环境:SQL SERVER 2005

  我们实现将同一组的数据内容合并到一行的时候,可以通过FOR XML PATH来实现。

有数据如图1,要实现图2的效果

FOR XML PATH 应用及其反向分解             FOR XML PATH 应用及其反向分解

1.图1到图2的FOR XML PATH实现

  网上有很多介绍FOR XML的方法,这里不再细说,感兴趣的朋友可以去查询一下它的用法。

--数据准备
;WITH    x0
          AS ( SELECT   1 AS id ,
                        '001' AS ty
               UNION ALL
               SELECT   1 AS id ,
                        '002' AS ty
               UNION ALL
               SELECT   2 AS id ,
                        '003' AS ty
               UNION ALL
               SELECT   3 AS id ,
                        '004' AS ty
               UNION ALL
               SELECT   3 AS id ,
                        '1234' AS ty
               UNION ALL
               SELECT   4 AS id ,
                        '01' AS ty
               UNION ALL
               SELECT   4 AS id ,
                        '005' AS ty
               UNION ALL
               SELECT   4 AS id ,
                        '006' AS ty
             ) 
    /*实现*/
    SELECT  id ,
            STUFF(ty, 1, 1, '') AS ty
    FROM    ( SELECT    id ,
                        ( SELECT    ',' + x2.ty
                          FROM      x0 x2
                          WHERE     x2.id = x1.id
                        FOR
                          XML PATH('')
                        ) AS ty
              FROM      x0 x1
              GROUP BY  id
            ) t
View Code

相关文章:

  • 2021-10-30
  • 2021-09-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-13
猜你喜欢
  • 2021-08-29
  • 2021-10-09
  • 2021-06-09
  • 2021-12-27
  • 2021-10-18
  • 2022-12-23
  • 2021-07-11
相关资源
相似解决方案