如何构造查询以显示自动递增的数字?

时间:2013-03-27 01:48:23

标签: sql

如何构建查询以显示自动递增的数字?

我有一个查询select * from data,结果是:

Name    State  
a       malaysia  
b       Indonesia  

我想要这个:

No      Name    State  
1       a       malaysia  
2       b       Indonesia  

我该怎么做?

3 个答案:

答案 0 :(得分:3)

SELECT Name
, State
, RANK() OVER (ORDER BY Name, State) as Ranking
FROM Data

答案 1 :(得分:0)

我不知道是否存在与数据库无关的方式。

Oracle允许您将rownum(http://www.adp-gmbh.ch/ora/sql/rownum.html)声明为要返回的列。

H2也支持这种语法

答案可能取决于您使用的数据库的风格。

答案 2 :(得分:0)

因为你没有说在什么数据库中让它成为PostgreSQL:

选择0 + row_number()OVER(ORDER BY name DESC)作为位置,*来自test.users ORDER BY name

这在其他数据库中可能会有所不同(肯定会有)。这个想法应该是同一个想法,所以这样你就知道怎么做了。在其他一些应该很容易做到。