0

现在我的 sql 查询显示结果如下。虽然这是正确的结果。

在此处输入图像描述

我更喜欢让结果显示如下。我怎样才能用 SQL 做到这一点?我在 SQL Server 2008 上

在此处输入图像描述

4

2 回答 2

3

我和评论者在一起,最好在其他地方这样做,但在 SQL 中使用CASE语句和ROW_NUMBER()函数很简单:

;WITH cte AS (SELECT *,ROW_NUMBER() OVER (PARTITION BY ID ORDER BY (SELECT 1)) RN
              FROM  YourTable)
SELECT CASE WHEN RN = 1 THEN CAST(ID AS VARCHAR(5)) ELSE '' END, Name
FROM cte
ORDER BY ID,RN

演示: SQL 小提琴

于 2013-10-30T21:20:56.407 回答
1

这不是 SQL 的工作。
无论如何,您可以使用逗号分隔值轻松显示它:

 ID   Names
1000  Honda, Toyota,...
1000  Honda, Toyota,...

SELECT ID, Names= 
    STUFF((SELECT ', ' + Name
           FROM your_table b 
           WHERE b.ID= a.ID
          FOR XML PATH('')), 1, 2, '')
FROM your_table a
GROUP BY ID
于 2013-10-30T21:16:21.973 回答