如何编写一个将行号输出为列的查询?
问题描述:
如何编写将行号输出为列的查询?这是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
答
检查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;
就是这样。谢谢。值得一提的是,beatle_name部分的顺序是可选的 – 2009-01-13 11:13:07