首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当LISTAGG和WM_CONCAT不可用时,SELECT将多个行组合在一起

当LISTAGG和WM_CONCAT不可用时,SELECT将多个行组合在一起
EN

Stack Overflow用户
提问于 2014-06-06 08:27:46
回答 2查看 1.8K关注 0票数 0

我很难解释这一点,所以如果有人可以调整标题或问题,那么请做。

我有一个简单的SQL查询正在运行

代码语言:javascript
复制
SELECT orders.customer_no, orders.order_no FROM orders WHERE orders.creation = '01-JAN-14';

结果是

代码语言:javascript
复制
customer_no   order_no
----------- ----------
         0    8051729
         2    2809137
         2    3794827
         3    1934678
         3    9237192
         6    3462890
         6    3131378
         6    6267190
         6    2864952
         6    1325645

但我想要的是

代码语言:javascript
复制
customer_no   order_no
----------- ----------
         0    8051729
         2    2809137 3794827
         3    1934678 9237192
         6    3462890 3131378 6267190 2864952 1325645

在SQL中可以直接这样做吗?

编辑:使用Oracle8i企业版发行版8.1.7.4.0 -生产。

EN

回答 2

Stack Overflow用户

发布于 2014-06-06 08:36:15

我相信你想:

代码语言:javascript
复制
select orders.customer_no, listagg(orders.order_no, ' ') within group (order by orders.order_no) orders.order_no
  from orders 
  WHERE orders.creation = '01-JAN-14'
  group by orders.customer_no;

在MySQL中,您可能需要GROUP_CONCAT函数,它在Oracle中大致是LISTAGG,如下所示:

concat in mysql?

票数 0
EN

Stack Overflow用户

发布于 2014-06-06 10:11:11

基于Oracle: Way to aggregate concatenate an ungrouped column in grouped results,您可以尝试这样的方法:

代码语言:javascript
复制
WITH j
     AS (SELECT customer_no, order_no
           FROM orders
          WHERE creation = '01-JAN-14')
SELECT   RTRIM (
            EXTRACT (SYS_XMLAGG (XMLELEMENT ("X", order_no || ' ')), '/ROWSET/X/text()').getstringval (),
            ', ')
    FROM j
GROUP BY customer_no;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24077373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档