Oracle - 为查询添加计数器

时间:2014-12-03 16:06:35

标签: sql oracle

我希望在一个简单的计数器中添加一个SQL查询 - 也就是说,如果我对返回3个结果的单个姓氏运行查询,我希望结果显示查询中的行值。 E.g:

Surnames   Counter
Smith         1
Murphy        2
Brown         3

如何做到这一点?

5 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

row_number分析函数可以解决这个问题:

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

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

SELECT   surname, rownum
FROM     my_table
ORDER BY 1 DESC

答案 2 :(得分:0)

你可以尝试这个

SELECT Surnames,row_number() OVER (ORDER BY Surnames)
FROM t

SQL小提琴: - http://sqlfiddle.com/#!4/ad3aa/3

答案 3 :(得分:0)

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

答案 4 :(得分:0)

Cerate一个名为' RowNumber'的SQL表达式字段。只需简单的' rownum'作为声明。在详细信息行中将该字段添加到您想要的位置,然后按表达式字段的名称对报告进行排序,' RowNumber'在这种情况下。