我返回一张位置表:
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?
答案 0 :(得分:2)
RDBMS中的表是一组无序行。如果uow.Tasks.Find(t=>t.Something==2, t=>t.Owner);
中没有order by
子句,它将任意分配行号。
使用正确的row_number
子句获得一致的结果:
order by