2014-12-03 77 views
0

我期待在一个简单的计数器中添加一个SQL查询 - 也就是说,如果我对返回3个结果的单个姓氏运行查询,我希望结果能够从查询中显示它们的行值。例如:Oracle - 添加计数器到查询

Surnames Counter 
Smith   1 
Murphy  2 
Brown   3 

这怎么办?

+0

根据哪种排序标准你想要“计数器”? – 2014-12-03 16:07:33

回答

1
select a.* 
, rownum rnum 
from 
(select surname from name_table order by surname) a 

将让你一个简单的编号(根据surname顺序,但不会与关系处理

1

row_number analyitic功能应该做的伎俩:

SELECT surname, ROW_NUMBER() OVER (ORDER BY surname) AS counter 
FROM my_table 

编辑:
在这样一个简单的查询中,您可以使用rownum伪列:

SELECT surname, rownum 
FROM  my_table 
ORDER BY 1 DESC 
+0

第二个查询将返回最大值到最小值的结果,您必须使用desc按顺序显示为1,2,3,等等...... – HaveNoDisplayName 2014-12-03 16:24:39

0
SELECT Surnames,row_number() OVER (ORDER BY Surnames) as Counter FROM table; 
0

创造学习名字类似 'ROWNUMBER' SQL表达式场与简单的 'ROWNUM' 的说法。将该字段添加到详细信息行中的所需位置,然后按照表达式字段的名称对报告进行排序,在这种情况下,请使用“RowNumber”。