在postgresql中使用动态限制

时间:2016-11-29 11:59:24

标签: postgresql limit

我想用

select * from table limit x;

此x可以动态更改。我不想使用号码。有一个使用参数限制的解决方案吗?

2 个答案:

答案 0 :(得分:1)

当然可以。从不需要自己,但是:

SELECT * FROM some_table LIMIT (SELECT a_limit FROM other_table);

显然,子查询应该只返回一行。

答案 1 :(得分:0)

要进一步扩展Richard Huxton的答案,可以在LATERAL子查询中使用它,例如,动态限制K最近邻查询:

SELECT loc_id, num_neighbours, neighbour_id
FROM locations,
LATERAL (SELECT neighbour_id 
         FROM neighbours 
         ORDER BY ST_distance(locations.geom, neighbours.geom) 
         LIMIT num_neighbours) knn