如何编写一个将行号输出为列的查询?

问题描述:

如何编写将行号输出为列的查询?这是iSeries上的DB2 SQL。如何编写一个将行号输出为列的查询?

例如,如果我有

表披头士:

John 
Paul 
George 
Ringo 

,我想写一个声明,而无需编写程序或视图如果可能的话,这给了我

1 John 
2 Paul 
3 George 
4 Ringo 

SELECT ROW_NUMBER() OVER (ORDER BY beatle_name ASC) AS ROWID, * FROM beatles 
+0

就是这样。谢谢。值得一提的是,beatle_name部分的顺序是可选的 – 2009-01-13 11:13:07

检查out row_number()函数;你应该能够通过这样做在DB2:

SELECT row_number(), first_name FROM beatles 

我几乎可以肯定这是不是SQL标准的一部分了,所以它不可能是便携式应该是有史以来是一个问题。

SELECT ROW_NUMBER() OVER(ORDER BY BEATLE_NAME) ROWNUM,BEATLE_NAME FROM BEATLES;