admin

将多行多列转换为Oracle中的一条记录

sql

在Oracle SQL查询中,我们得到 40条记录,其中*13列 。我想 所有这些记录 合并一列,
1条记录中 40 * 13 = 520 列。例如-样本表的记录很少
*

col1  col2  city  cntry  conti
1     abc   NYC   USA    NA
2     def   LON   UK     EU
3     xyz   DUB   UAE    ASIA

然后 合并 所有记录并 合并 为一条记录,然后应如下图所示-

col1  col2  city  cntry  conti  col1  col2  city  cntry  conti  col1  col2  city  cntry  conti  
1     abc   NYC   USA    NA     2     def   LON   UK     EU     3     xyz   DUB   UAE    ASIA

阅读 291

收藏
2021-07-01

共1个答案

admin

如果列col1包含唯一值,则可以使用pivot

select * 
  from t
  pivot (max(col1) col1, max(col2) col2, max(city) city, max(cntry), max(conti) conti 
         for col1 in (1, 2, 3))

SQLFiddle演示

2021-07-01