开发者社区> 问答> 正文

如何在SQL Server中连接字符串,并按其他列排序/排序?

我已经看到了许多在SQL Server中串联字符串的示例,但是如果他们担心排序,则总是通过串联的列来进行。我需要根据不同字段中的数据对值进行排序。

样表:

ClassID | StudentName   | SortOrder
-----------------------------
A       |James          |1
A       |Janice         |3
A       |Leonard        |2
B       |Luke           |2
B       |Leia           |1
B       |Artoo          |3

我想要得到的结果是:

ClassID |StudentName
--------------------------------
A       |James, Leonard, Janice
B       |Leia, Luke, Artoo

如何在SQL Server 2016中完成此操作?(我很期待2017年的STRING_AGG,但我们还没有出现...)

展开
收起
心有灵_夕 2019-12-25 21:49:26 969 0
1 条回答
写回答
取消 提交回答
  • SELECT
         s1.ClassID
       , STUFF((SELECT
                      ',' + s2.StudentName
                FROM  dbo.Student AS s2
                WHERE s1.classID = s2.ClassID
                ORDER BY s2.SortOrder
               FOR XML PATH('')), 1, 1, '') AS StudentNames
    FROM dbo.Student AS s1
    GROUP BY s1.ClassID
    
    2019-12-25 21:49:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载