exec create_table('t1',100);
--假如需要将 object_name 列,按照每列 18 条数据,一共 6 列存储
--也就是前 5 列每列存放 18 条,第 6 列存放 10 条。
--18 18 18 18 18 10
with a as
(select mod(rownum, 18) + 1 seq, object_name from t1),
b as
(select seq, row_number() over(partition by seq order by 1) rn, object_name
from a)
select max(decode(rn, 1, object_name)) col1,
max(decode(rn, 2, object_name)) col2,
max(decode(rn, 3, object_name)) col3,
max(decode(rn, 4, object_name)) col4,
max(decode(rn, 5, object_name)) col5,
max(decode(rn, 6, object_name)) col6
from b
group by seq;