Sql 如何编写查询以将列中的所有值放入字符串(将列转换为行)?

Sql 如何编写查询以将列中的所有值放入字符串(将列转换为行)?,sql,oracle,Sql,Oracle,如果以下是数据列: +----+-------------+ | id | data | +----+-------------+ | 1 | max | | 2 | linda | | 3 | sam | | 4 | henry | +----+-------------+ 因此,如何进行查询将产生一个结果: "max, lina, sam, henry" 很像从列到行的转换。上面

如果以下是数据列:

+----+-------------+  
| id | data        |  
+----+-------------+  
|  1 | max         |  
|  2 | linda       |  
|  3 | sam         |  
|  4 | henry       |  
+----+-------------+  
因此,如何进行查询将产生一个结果:

"max, lina, sam, henry"

很像从列到行的转换。上面只是一个简单的演示,在
数据
字段上可能有10000多条记录。

对于11g,请使用
listag

SELECT LISTAGG("data", ', ') WITHIN GROUP (ORDER BY "id") "data"
FROM TableName

什么版本的oracle?@J W,它是11g,但与10g兼容也很完美。谢谢。10g@J W的另一个选择是竖起大拇指,回答得很好。还有一个问题,如果我从oracle获得字符串连接的
结果太长
,有没有办法克服这种限制,而不是使用
WHERE rownum