如何将矩阵数据转换为列

问题描述 投票:0回答:1

嗨,我在像这样的oracle数据库表的signle列中有数千条记录

enter image description here

我想借助SQL查询在4列中显示数据这是我的愿望结果enter image description here

因此在此示例中,我总共有24条记录,并且我希望每列显示6条记录

oracle oracle11g oracle10g oracle-sqldeveloper oracle-apex
1个回答
0
投票

使用PIVOT

SELECT A, B, C, D
FROM   (
  SELECT value,
         MOD( ROWNUM - 1, 4 ) AS col,
         CEIL( ROWNUM / 4 ) AS rn
  FROM   table_name
)
PIVOT( MAX( value ) FOR col IN (
  0 AS A,
  1 AS B,
  2 AS C,
  3 AS D
) )
ORDER BY rn;

因此,如果您的数据是:

CREATE TABLE table_name ( value ) AS
SELECT ROUND(DBMS_RANDOM.VALUE(1,1000))
FROM   DUAL
CONNECT BY LEVEL <= 25;

然后输出:

A | B | C | d-:| ---: ---: ---:754 | 622 | 265 | 181566 | 801 | 844 | 320938 | 377 | 919 | 306921 | 402 | 737 | 143562 | 94 | 868 | 790617 | 809 | 437 | 469264 |  |  | null

db <>小提琴here

© www.soinside.com 2019 - 2024. All rights reserved.