0

给定以下示例表:

C1     C2      C3
=================
A      21      S
A      22      S
A      23      S
A      24      T
B      25      S
B      26      S

如何编写 SQL 查询以提供以下输出:

COL1   COL2       COL3
======================
A      21,22,23      S
A      24            T
B      25,26         S

对于输入表中 C1 和 C3 相同的所有行,我希望输出表中的一行将所有 C2 值连接起来,用逗号分隔。

我正在使用 Oracle 数据库。

4

3 回答 3

0

这将是一个特定于数据库的答案,所以请您使用什么数据库。Mysql很流行,所以这里是Mysql5的答案:

select col1, group_concat(col2 SEPARATOR ','), col3 from tbl group by col1,col3;
于 2012-05-10T03:49:20.280 回答
0

如果您使用的是 oracle 11g,请尝试此操作

SELECT 
     C1, 
     LISTAGG(C2, ',') as C2,
     C3
from 
     tbl 
GROUP BY 
     C1,C1
于 2012-05-10T03:42:22.673 回答
-1

在 MySQL 中,您可以使用Group_Concat。例如:

SELECT GROUP_CONCAT(Language) As Languages FROM CountryLanguage WHERE CountryCode = 'THA';

于 2012-05-10T03:47:15.447 回答