0

我有一个这样的结果集

Continent   Country
------- -------
Asia    Japan
Asia    Russia
Asia    India
Europe  Britain
Europe  France

从查询

select continent,country from tablexxx

我想要格式的结果

Continent   Country
------- -------
Asia    Japan,Russia,India
Europe  Britain,France

我听说过数据透视表。但对我来说似乎很难......请对查询有任何帮助:)

这是我在 SQL Server 中的最终解决方案,它有效...... :)

SELECT     continents, Countries = replace
                          ((SELECT Countries AS [data()]
                              FROM tblXXX
                              WHERE  continents = a.continents
                              ORDER BY continents FOR xml path('')), ' ',  ',' )
FROM       tblXXXa
WHERE     continents IS NOT NULL
GROUP BY continents
4

2 回答 2

1

如果你使用 MySQL,你需要使用 GROUP_CONCAT

例子:

SELECT continent, GROUP_CONCAT(county ORDER BY country) as Countries 
FROM tablexxx
GROUP BY continent
ORDER BY continent

链接
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

于 2011-08-11T13:56:20.673 回答
0

您可以使用 COALESCE 函数从行构建以逗号分隔的列表,如下例所示:

DECLARE @EmployeeList varchar(100)

SELECT @EmployeeList = COALESCE(@EmployeeList + ', ', '') + 
   CAST(Emp_UniqueID AS varchar(5))
FROM SalesCallsEmployees
WHERE SalCal_UniqueID = 1

SELECT @EmployeeList
于 2011-08-11T13:55:58.983 回答