如何在 Postgres 中删除 N 个自然数表并替换为生成子查询?

How to remove a table of N natural numbers and replace with a generative subquery, in Postgres?

提问人:fadedbee 提问时间:11/3/2023 更新时间:11/3/2023 访问量:25

问:

我有一张桌子:

CREATE TABLE nums (
    num INTEGER NOT NULL
);

INSERT INTO nums VALUES(0);
INSERT INTO nums VALUES(1);
INSERT INTO nums VALUES(2);

我将其用作 LEFT OUTER JOIN 的左侧,以确保当我链接到缺少行的表时,我得到 NULL 或零结果。

如何在生成子查询中生成 N 个数字(从零开始),以便删除此表?

PostgreSQL 数字 子查询 左联接

评论


答:

1赞 SelVazi 11/3/2023 #1

您可以使用 generate_series 生成从开始到停止的一系列值,步长为 (默认为 1):

generate_series ( 起始整数, 停止整数 [, 步进整数 ] ) → setof 整数

SELECT * 
FROM generate_series(0,2);