返回带行计数的select查询

时间:2013-04-15 07:18:42

标签: sql db2

我试图从查询中返回值,为行位置添加一列而不添加标识列。我不希望表中的绝对位置,而是查询结果中的位置

假设我有一个这样的表

 My_TBL
 -----------------------
 FLD_A     FLD_B   FLD_C
 a         A       t
 b         B       t
 c         C       p
 d         D       p
 ..        ..

,选择查询

 select FLD_A,FLD_B from My_Tbl where FLD_C='p'

 FLD_A    FLD_B
 -----------------------
 c         C      
 d         D      

我在Db2中有什么要添加到我的查询中以便在该输出中计算每一行?

 POS       FLD_A    FLD_B
 -----------------------
 1         c         C      
 2         d         D      

1 个答案:

答案 0 :(得分:1)

使用row_number()。它只计算实际返回的行数。

select  row_number() over (order by FLD_A,FLD_B) as POS,
        FLD_A,
        FLD_B 
    from My_Tbl 
    where FLD_C='p'