【问题标题】:In sql server how to seperate the column values with comma [duplicate]在sql server中如何用逗号分隔列值[重复]
【发布时间】:2013-02-07 11:16:24
【问题描述】:

我的查询是:

select 
gp.GroupName+ '' As GroupName,  
us.UnitsName+'' As Unitname,
sp.Sensorname+',' As sensorName
from Grouping as gp
inner join Units as us
on gp.UnitsID = us.UnitsID
inner join Sensors as sp
on gp.SensorID = sp.SensorID

输出是

GroupName   Unitname    sensorName

G1         Electricity  S1,

G1        Electricity   S3,

G2          Gas       test,

但是输出应该是这样的

G1         Electricity  S1,S3

G2          Gas       test

如何获得?

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:
    WITH CTE
    AS
    (
        select
          gp.GroupName  As GroupName,
          us.UnitsName  As Unitname,
          sp.Sensorname As sensorName
        from Grouping as gp
        inner join Units as us  on gp.UnitsID = us.UnitsID
        inner join Sensors as sp on gp.SensorID = sp.SensorID
    )
    SELECT 
      c1.Groupname,
      c1.Unitname,
      STUFF((
        SELECT ', ' + c2.sensorName
        FROM CTE c2
        WHERE c2.GroupName = c1.GroupName
          AND c2.Unitname = c1.Unitname
        FOR XML PATH (''))
      ,1,2,'') AS Sensors
    FROM CTE  c1
    GROUP BY c1.GroupName,
             c1.Unitname;
    

    【讨论】:

    • 非常感谢 :) 它完全符合我的需要
    猜你喜欢
    • 2012-02-21
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 2012-10-14
    • 2011-04-04
    • 2014-03-03
    相关资源
    最近更新 更多