查询结果中的行号

时间:2016-10-29 21:44:31

标签: sql firebird firebird2.5

去年,我有询问是否让他们的公司获得销售。

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 3)等1(或2)等等。这是可能的吗? ?或者至少创建一些自动增量列。如果需要,我甚至可以使用存储过程。

1 个答案:

答案 0 :(得分:3)

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;
相关问题