【问题标题】:SQL Server 2005 query columns to Rows with a twistSQL Server 2005 查询列到行的扭曲
【发布时间】:2012-01-19 09:09:53
【问题描述】:

这是我的桌子:

 CODE     __NAME
 1000     ___AB
 1001     ___CA
 1001     ___DR
 1001     ___LVN
 1100     ___ER
 1110     ___WL

我想达到的是:

 CODE___NAME
 1000  ___AB
 1001  ___CA,DR,LVN
 1100  ___ER
 1110  ___WL

我知道我可以使用循环来完成此操作,但我想知道是否有更好的方法。谢谢

【问题讨论】:

    标签: sql sql-server-2005


    【解决方案1】:

    试试这样的方法,这会让你得到你想要的。

       Select 
            Main.CODE,
            Left(Main.Names,Len(Main.Names)-1) As Names
        From
            (
            Select distinct T2.CODE, 
            (
             Select 
                RTRIM(T1.NAME) + ', ' AS [text()]
             From   
                Test T1
             Where
                T1.CODE = T2.CODE
             ORDER BY 
                T1.CODE
             For XML PATH ('')
            ) [Names]
            From Test T2
            ) [Main]
    

    【讨论】:

      猜你喜欢
      • 2010-09-08
      • 1970-01-01
      • 2011-01-25
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多