如何在单行显示名字?

问题描述:

我正在学习oracle sql。如何在单行显示名字?

我只是试图用逗号分隔的单行显示'员工'表中的所有员工的名字。

例如:约翰,亚历克斯,红润

我使用SQL * Plus运行查询。

+0

你检查这个网站?,这对写作查询更多详细信息来连接行。 https://oracle-base.com/articles/misc/string-aggregation-techniques –

+0

可能的重复[如何将多行组合到Oracle中的逗号分隔列表中?](http://*.com/questions/468990/how-can-i-combine-multiple-rows-into-a-com-delimited-list-in-oracle) – Aleksej

您必须使用一些内置的功能,如:

SYS_CONNECT_BY_PATH , ROW_NUMBER() OVER 

Here is the solution

+0

非常感谢。现在我可以在单行显示名字 –

+0

太好了。将其标记为您的问题的答案,以便其他人会发现它有帮助。 –

SQL> 
SQL> create table test(id int, name varchar(10)); 
Table created 
SQL> begin 
    2  insert into test values(1,'john'); 
    3  insert into test values(2,'alex'); 
    4  insert into test values(3,'rosy'); 
    5 end; 
    6/
PL/SQL procedure successfully completed 
SQL> select listagg(name ,',') within group(order by id) result from test; 
RESULT 
-------------------------------------------------------------------------------- 
john,alex,rosy 
SQL> drop table test purge; 
Table dropped 

SQL>