Sql 查询结果中的行号

Sql 查询结果中的行号,sql,firebird,firebird2.5,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 我想在结果中得到行的索引。对于公司2我想得到0(或1),对于公司31(或2)等等。这可能吗?或者至少创建某种自动增量列。如果需要,我甚至可以使用存储过程。Firebird 3.0支持行编号(),这是更好的方法 但是,对于Firebird

我想通过公司去年的销售额来了解他们

select
   Name,
   Sale
from Sales
order by
   Sale DESC
我得到

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

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

Firebird 3.0支持
行编号()
,这是更好的方法

但是,对于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;

Firebird 3.0支持
行编号()
,这是更好的方法

但是,对于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;

@Sk1X1。这就是为什么我建议使用相关子查询。我的错误,对不起。。。最后,很好的解决方案,非常感谢!:-)@Sk1X1。这就是为什么我建议使用相关子查询。我的错误,对不起。。。最后,很好的解决方案,非常感谢!:-)