SQL> select * from test;        ID
----------
         1
         2
         3
         4
         5
         6
         7
         8
         99 行 已选择SQL> select id1,id2,id3 from (
  2  select
  3  lead(id,0) over(partition by seq order by rn) id1,
  4  lead(id,1) over(partition by seq order by rn) id2,
  5  lead(id,2) over(partition by seq order by rn) id3,
  6  row_number() over(partition by seq order by rn) rrk
  7  from (
  8  SELECT id,rn, row_number()
  9  OVER ( PARTITION BY rn ORDER BY id) seq FROM (select  FLOOR((rownum-1)/4) rn,id from test)))
 10  where rrk=1
 11  /       ID1        ID2        ID3
---------- ---------- ----------
         1          5          9
         2          6 
         3          7 
         4          8 SQL>