首页 > 解决方案 > PostgreSQL 中的 ROW_NUMBER 查询?

问题描述

--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 不存在

标签: c#postgresql

解决方案


您可以使用子查询:

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

您不能在同一级别使用来自SELECTin子句的别名,也不能将其用作.WHEREROW_NUMBER()WHERE

更多信息:


推荐阅读