【发布时间】:2021-10-15 09:16:02
【问题描述】:
我想通过 Postgresql(Redshift) 创建一个仅包含单列的 CTE - 将数字增加 1,例如 1,2,3,4,..直到 1000。
【问题讨论】:
标签: postgresql amazon-web-services amazon-redshift auto-increment
我想通过 Postgresql(Redshift) 创建一个仅包含单列的 CTE - 将数字增加 1,例如 1,2,3,4,..直到 1000。
【问题讨论】:
标签: postgresql amazon-web-services amazon-redshift auto-increment
是的,CTE 可以做到这一点:
with recursive numbers (nr) as (
values (1)
union all
select p.nr + 1
from numbers p
where p.nr < 1000
)
select *
from numbers;
【讨论】:
这里是 1024。如果您只想要 1000,请添加“TOP 1000”。
SELECT
1 + p0.n
+ p1.n*2
+ p2.n * POWER(2,2)
+ p3.n * POWER(2,3)
+ p4.n * POWER(2,4)
+ p5.n * POWER(2,5)
+ p6.n * POWER(2,6)
+ p7.n * POWER(2,7)
+ p8.n * POWER(2,8)
+ p9.n * POWER(2,9)
as number
FROM
(SELECT 0 as n UNION SELECT 1) p0,
(SELECT 0 as n UNION SELECT 1) p1,
(SELECT 0 as n UNION SELECT 1) p2,
(SELECT 0 as n UNION SELECT 1) p3,
(SELECT 0 as n UNION SELECT 1) p4,
(SELECT 0 as n UNION SELECT 1) p5,
(SELECT 0 as n UNION SELECT 1) p6,
(SELECT 0 as n UNION SELECT 1) p7,
(SELECT 0 as n UNION SELECT 1) p8,
(SELECT 0 as n UNION SELECT 1) p9
Order by 1
【讨论】: