Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle Sql选择一行中的所有值,而不使用聚合函数和过程_Sql_Oracle_Join_String Aggregation - Fatal编程技术网

Oracle Sql选择一行中的所有值,而不使用聚合函数和过程

Oracle Sql选择一行中的所有值,而不使用聚合函数和过程,sql,oracle,join,string-aggregation,Sql,Oracle,Join,String Aggregation,我有以下代码: select eto.id,( epe.surname || ' ' || epe.name || ' ' || epe.patronymic) fio from employee_trip_orders eto left join employee_card_order_links ecol on eto.id = ecol.trip

我有以下代码:

select eto.id,( epe.surname || ' ' || epe.name  || ' ' || epe.patronymic) fio
                        from employee_trip_orders eto
                        left join employee_card_order_links ecol
                        on eto.id = ecol.trip_order_id
                        left join employee_trip_cards etc
                        on ecol.trip_card_id = etc.employee_trip_card_id 
                        left join eip_persons.employees epe
                        on etc.employee_id = epe.employee_id
                        where eto.id=2223
                        order by eto.id
以及执行此代码的结果

id     fio
------------
2223 John Smith Brown
2223 Jack Orange Apple
2223 Jordan Stinky Tomato
我想将其转换为带有逗号分隔符的单行

id     fio
-------------------------------
2223 |  John Smith Brown,
     |  Jack Orange Apple,
     |  Jordan Stinky Tomato
-------------------------------

如何在不使用外部函数、group by和agregate函数的情况下实现这一点?谢谢

您可以使用
connectby
查询来完成,但它比简单的
listag()
更慢、更复杂


不,不,一匹马。“…不使用外部函数、分组和拒绝函数”。如果我是你(OP),我会把它写在一张纸上,在适当的地方加上逗号。这种方法不使用外部函数等。@Littlefoot:aggregating而不使用聚合函数似乎是一种相当徒劳的尝试使用
listag()
?@Littlefoot mb有什么不对?我还需要一个select?@a_horse(“…似乎是一种相当徒劳的尝试”)。当然有。进入“如何使简单的事情复杂化”。
select id, ltrim(sys_connect_by_path(fio, ', '), ', ') names
  from (select row_number() over (partition by id order by fio) rn, id, fio from t)
  where connect_by_isleaf = 1
  connect by id = prior id and rn = prior rn + 1
  start with rn = 1