当结果按某列排序时,如何在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
有没有其他方法可以在不需要复制代码的情况下返回有序和编号的结果?
我知道这可以通过增加应用程序本身中的一些变量来解决,但我想在数据库层这样做,并返回到已经编号的应用程序结果...