使用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