行到Sql中的列

时间:2013-10-28 13:47:28

标签: sql oracle

我想得到一组邮件ID,但在我的查询中,这并没有被正确解析为单行。请让我解决这个问题。

    SELECT LISTAGG ( EMAIL) WITHIN GROUP (ORDER BY EMAIL) EMAIL1 FROM USER  
WHERE ID IN (107) GROUP BY EMAIL   

当前输出:

abdul@eetmx.com
joseph@eetmx.com
ranjith@eetmx.com

预期产出:

abdul@eetmx.com,joseph@eetmx.com,ranjith@eetmx.com

1 个答案:

答案 0 :(得分:3)

您正在对EMAIL进行分组,这就是为什么他们最终会遇到不同的行。请尝试按ID进行分组,例如:

SELECT LISTAGG ( EMAIL, ',') WITHIN GROUP (ORDER BY EMAIL) EMAIL1 
FROM USER
WHERE ID IN (107) 
GROUP BY ID 

有关工作示例,请参阅此SQL Fiddle

旁注USER在ANSI和Oracle SQL中都是reserved word,不应该用作表名。