当结果按某列排序时,如何在 PostgreSQL 中获取行号?
例如
SELECT 30+row_number() AS position, *
FROM users
ORDER BY salary DESC
LIMIT 30
OFFSET 30
我认为查询会返回这样的列表:
position | name | salary
31 | Joy | 4500
32 | Katie| 4000
33 | Frank| 3500
实际上我必须将该ORDER
子句复制到查询中以使其正常工作:
SELECT 30+row_number(ORDER BY salary DESC) AS position, *
FROM users
ORDER BY salary DESC
LIMIT 30
OFFSET 30
有没有其他方法可以在不需要复制代码的情况下返回有序和编号的结果?
我知道这可以通过在应用程序本身中增加一些变量来解决,但我想在数据库层执行此操作并返回应用程序已经编号的结果......