PostgreSQL中的ROW_NUMBER查询?

时间:2018-06-06 11:04:01

标签: c# postgresql

--1
(select * , row_number() over (order by columnname) as tempcolumn 
 from tablename )

--2
select * , row_number() over (order by defid) as tempcolumn 
from fields 
where tempcolumn between 1 and 2 

第一个查询将为整个表添加一个新列。

我需要在检查tempcolumn的范围后显示结果。  我尝试的第二个查询抛出了像tempcolumn不存在的错误

1 个答案:

答案 0 :(得分:2)

您可以使用子查询:

SELECT * FROM (
  select *,ROW_NUMBER() OVER(ORDER BY columnname) as tempcolumn 
  from  tablename) sub
WHERE tempcolumn <= 2;

您不能在同一级SELECT子句中使用WHERE中的别名,也不能将ROW_NUMBER()用作WHERE的一部分。

更多信息: