我有一个问题,我必须将大量值放入一个遵循模式的表中,但我不知道从哪里开始。我需要它看起来像这样:
table_id second_id type_id default_value
-------- --------- ------- -------------
1 1 1 'default'
2 1 2 'default'
3 1 4 'default'
4 2 1 'default'
5 2 2 'default'
6 2 4 'default'
该模式持续了一段时间,其中table_id每行递增,second_id每三行递增一次,type_id也每隔三行循环一次。任何帮助表示赞赏。谢谢。
答案 0 :(得分:2)
嗯。这是我想到的第一件事:
select row_number() over (order by id2.n, id3.n) as first_id,
id2.n as second_id, id3.n as third_id,
'default' as default_value
from generate_series(1, 10) id2(n) cross join
(values (1), (2), (4)) id3(n);
答案 1 :(得分:1)
select
i+1 as table_id,
i/3+1 as second_id,
(array[1,2,4])[i%3+1] as type_id,
'default' as default_value
from
generate_series(0,29) as i;