查询结果中的行号

Row number in query result

我想通过他们去年的销售额获得公司。

select
   Name,
   Sale
from Sales
order by
   Sale DESC

我得到

Firm 2 | 200 000
Firm 1 | 190 000
Firm 3 | 100 000

我想获得结果中的行索引。对于Firm 2我想得到0(或1),对于Firm 31(或2)等。这可能吗?或者至少创建某种自动增量列。如果需要,我什至可以使用存储过程。

Firebird 3.0 支持 row_number() 这是更好的方法。

但是对于 Firebird 2.5,您可以通过相关子查询获得所需内容:

select s.Name, s.Sale,
       (select count(*) from Sales s2 where s2.sale >= s.sale) as seqnum
from Sales s
order by s.Sale DESC;