我试图从查询中返回值,为行位置添加一列而不添加标识列。我不希望表中的绝对位置,而是查询结果中的位置
假设我有一个这样的表
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
答案 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'