是否可以通过postgresql中的where子句指定limit?

时间:2015-04-15 13:44:06

标签: sql postgresql

有可能吗?我的意思是

Select * from tbl limit 100;

我想用

之类的查询替换
Select * from tbl WHERE ...some_condition...

3 个答案:

答案 0 :(得分:2)

您可以使用row_number()

select  *
from    (
        select  row_number() over () as rn
        ,       *
        from    YourTable
        ) as SubQueryAlias
where   rn <= 100

如果您有特定的排序,可以添加order by子句:

select  row_number() over (order by date_column) as rn

答案 1 :(得分:2)

您是否希望where子句仅应用于前100行?如果是这样,请使用子查询:

select . . .
from (select t.*
      from table t
      limit 100) t
where . . .

这将返回少于100行(可能不是所有行都符合条件)。此外,使用limit时,您应该有order by条件。

答案 2 :(得分:1)

您不能在limit子句中放置where子句。但是你当然可以在limit子句之后追加 where子句。