【发布时间】:2021-03-13 03:36:29
【问题描述】:
所以我有一个声明:
SELECT jsonb_build_object(
'type', 'Feature',
'geometry', ST_AsGeoJSON(line)::jsonb,
'properties', to_jsonb(inputs) - 'line'
) as feature from (select line, line_types from table_a) inputs;
除了 FROM 子句中的 select 语句返回了太多行之外,它工作得很好。所以我只想 FETCH 一次只做 x 行。 我在 table_a 中的选择行 line_types 上声明了一个游标,当我执行 FETCH FORWARD 5 FROM mycur;它返回了前 5 行。然而,当我尝试用 fetch 替换 select 时,它不会让我:
SELECT jsonb_build_object(
'type', 'Feature',
'geometry', ST_AsGeoJSON(line)::jsonb,
'properties', to_jsonb(inputs) - 'line'
) from (FETCH 1 FROM mycur) inputs;
ERROR: syntax error at or near "FETCH"
LINE 5: ) from (FETCH 1 FROM mycur) inputs;
^
我假设您不能在子查询中使用 fetch?我试过了
SELECT jsonb_build_object(
'type', 'Feature',
'geometry', ST_AsGeoJSON(line)::jsonb,
'properties', to_jsonb(inputs) - 'line'
) as feature from (select FETCH 1 FROM mycur) inputs;
ERROR: syntax error at or near "1"
LINE 5: ) as feature from (select FETCH 1 FROM mycur) inputs...
^
我确实看到您可以在 SELECT 中只使用 FETCH 语句,但这并不是我真正想要的:
SELECT jsonb_build_object(
'type', 'Feature',
'geometry', ST_AsGeoJSON(line)::jsonb,
'properties', to_jsonb(inputs) - 'line'
) as feature from (select line, line_type from table_a fetch first 10 rows only) inputs;
现在有办法使用 FETCH FROM Cursor 作为子查询吗?
【问题讨论】:
标签: sql postgresql subquery