我正在尝试编写一个SELECT
返回 a RECORD
of的查询ROWS
。
我已经解决了一半的问题,因为我可以得到一条记录来返回一行。但是返回一组 ROWS 呢?
以以下查询为例:
SELECT * FROM
RECORD(
(
ROW(1::integer, 'Florida'::character varying)
)
) AS tbl (id integer, state character varying)
我得到了我的预期:
+==============+
| id | state |
+====+=========+
| 1 | Florida |
+----+---------+
但是,当我尝试向 RECORD 添加一个额外的 ROW 时,这就是我遇到问题的地方:
SELECT * FROM
RECORD(
(
ROW(1::integer, 'Florida'::character varying),
ROW(2::integer, 'Georgia'::character varying)
)
) AS tbl (id integer, state character varying)
我预计结果类似于:
+==============+
| id | state |
+====+=========+
| 1 | Florida |
+----+---------+
| 2 | Georgia |
+----+---------+
但是,我收到了以下 PostgreSQL 错误:
********** Error **********
ERROR: function return row and query-specified return row do not match
SQL state: 42804
Detail: Returned type record at ordinal position 1, but query expects integer.
我在这里缺少什么?一些微不足道的事情,还是我接近这一切都错了?非常感谢任何指针或建议,谢谢!
在相关说明中:我知道如果这发生在存储过程中,我可以返回 a SETOF
,但是对于这个用例,我有兴趣通过查询直接返回 ROWS 记录,而不使用存储过程。