PostgreSQL:选择单行x次

3 sql postgresql select

表中的单行具有整数值> = 1的列,但必须选择该列多次.因此,如果列有'2',我希望select查询返回单行2次.

如何实现这一目标?

rfu*_*sca 15

不知道你为什么要做这样的事情,但......

CREATE TABLE testy (a int,b text);
INSERT INTO testy VALUES (3,'test');
SELECT testy.*,generate_series(1,a) from testy;  --returns 3 rows
Run Code Online (Sandbox Code Playgroud)


Cha*_*lie 1

您可以使用递归查询来完成此操作,请查看postgresql 文档中的示例 。

就像是

WITH RECURSIVE t(cnt, id, field2, field3) AS (
        SELECT 1, id, field2, field3
        FROM foo
      UNION ALL
        SELECT t.cnt+1, t.id, t.field2, t.field3
        FROM t, foo f
        WHERE t.id = f.id and t.cnt < f.repeat_cnt
)
SELECT id, field2, field3 FROM t;
Run Code Online (Sandbox Code Playgroud)