返回行位置 - Postgres

时间:2017-03-27 17:52:00

标签: sql postgresql

我返回一张位置表:

select * 
from (
    select *, row_number() over() as position 
    from organization
) result 
where data1 = 'Hello';

回馈这个,这是正确的:

data1 | Hello
data2 | Joe
position | 5

但是当我这样做时:

select position 
from (
   select *, row_number() over() as position 
   from organization
) result 
where data1 = 'Hello';

它返回:

position | 25

这里缺少什么? 如何修改此查询以返回5?

1 个答案:

答案 0 :(得分:2)

RDBMS中的表是一组无序行。如果uow.Tasks.Find(t=>t.Something==2, t=>t.Owner); 中没有order by子句,它将任意分配行号。

使用正确的row_number子句获得一致的结果:

order by