【问题标题】:Rows as Columns and Vice Versa using Oracle SQL [duplicate]使用 Oracle SQL 将行作为列,反之亦然 [重复]
【发布时间】:2021-09-28 15:38:22
【问题描述】:

按照屏幕截图 1,我有来自以下格式的 SQL 的数据,我需要按照屏幕截图 2 的格式。

请注意,屏幕截图 1 中的数据是动态的。可以有任意数量的行和任意数量的列。另外,我需要它在单个 SQL 查询中,而不是 PL/SQL 过程中。

当前 SQL 输出:

所需的 SQL 输出:

有人可以解释一下吗?

谢谢, 阿布舍克。

【问题讨论】:

  • 1. Do not post images of data,它们没用。 2.你试过search吗?实际上也没有反之亦然,因为您只是将行转换为列。我看不到任何一列变成了一行,是吗?

标签: sql oracle pivot


【解决方案1】:

有了pivot,很容易得到想要的输出

select * 
from myTable
pivot (
    max (COLUMN_NAME_VALUE)
    for COLUMN_NAME
    in (
       'COL1' as COL1,'COL2' as COL2,'COL3' as COL3
   )
)
ORDER BY ROW_NAME;

db<>fiddle中的演示

【讨论】:

  • 这不够灵活,因为根据问题数据是动态的,可以有任意数量的行/列。
猜你喜欢
  • 1970-01-01
  • 2013-07-08
  • 1970-01-01
  • 1970-01-01
  • 2019-12-27
  • 1970-01-01
  • 2013-12-27
  • 2012-06-28
  • 2023-03-17
相关资源
最近更新 更多