【问题标题】:Display multiple values of a column in one row (SQL Oracle) [duplicate]在一行中显示一列的多个值(SQL Oracle)[重复]
【发布时间】:2012-01-20 10:33:26
【问题描述】:

可能重复:
Is there an Oracle SQL query that aggregates multiple rows into one row?

我正在尝试创建一个 SQL 查询,该查询可以从表中返回数据以在一行中显示一列的多个值。

例如这是表设置:

SEQ   ROWSEQNUM   ASSISTING_ASSOCIATES  
100   2           19332816  
100   1           1366344  
103   1           12228238  
104   1           1366474 

我需要查询结果看起来像这样:

 SEQ   ROWSEQNUM   ASSISTING_ASSOCIATES  
 100   1           1366344; 19332816  
 103   1           12228238  
 104   1           1366474 

有人有什么见解吗?

【问题讨论】:

标签: sql oracle


【解决方案1】:

我认为这应该可行,假设对于每个 SEQ 值总是有一行带有 ROWSEQNUM=1 并且 ROWSEQNUM 的值顺序增加而没有间隙。

select seq, min(rowseqnum), max(assoc_list)
from (
  select seq, rowseqnum, sys_connect_by_path(assisting_associate,';') assoc_list
    from assoc_table
    start with rowseqnum=1
    connect by seq = prior seq and rowseqnum = prior rowseqnum + 1
  )
group by seq

【讨论】:

  • 你的假设是正确的,我会试试这个,谢谢你的快速回复
  • 如果这对您有用,请记住单击绿色复选标记将其标记为已接受的答案。这奖励了 Dave 的帮助,并向其他用户展示了您认为最好的答案。
  • question ... 'assoc_table' 会是我在这个 SQL 查询中放置我的表名的位置吗?所有数据都驻留在一张表中。
  • 是的,这就是表名
  • 谢谢我仍在测试调整这个但非常感谢你的帮助。一旦我确定,我会回来接受。这个查询实际上是针对基于 oracle 的实时链接系统,所以它与标准系统有点不同
猜你喜欢
  • 1970-01-01
  • 2021-03-02
  • 1970-01-01
  • 2020-07-15
  • 1970-01-01
  • 2021-11-10
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多