我期待在一个简单的计数器中添加一个SQL查询 - 也就是说,如果我对返回3个结果的单个姓氏运行查询,我希望结果能够从查询中显示它们的行值。例如:Oracle - 添加计数器到查询
Surnames Counter
Smith 1
Murphy 2
Brown 3
这怎么办?
我期待在一个简单的计数器中添加一个SQL查询 - 也就是说,如果我对返回3个结果的单个姓氏运行查询,我希望结果能够从查询中显示它们的行值。例如:Oracle - 添加计数器到查询
Surnames Counter
Smith 1
Murphy 2
Brown 3
这怎么办?
select a.*
, rownum rnum
from
(select surname from name_table order by surname) a
将让你一个简单的编号(根据surname
顺序,但不会与关系处理
的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
第二个查询将返回最大值到最小值的结果,您必须使用desc按顺序显示为1,2,3,等等...... – HaveNoDisplayName 2014-12-03 16:24:39
你可以试试这个
SELECT Surnames,row_number() OVER (ORDER BY Surnames)
FROM t
SQL小提琴: -http://sqlfiddle.com/#!4/ad3aa/3
SELECT Surnames,row_number() OVER (ORDER BY Surnames) as Counter FROM table;
创造学习名字类似 'ROWNUMBER' SQL表达式场与简单的 'ROWNUM' 的说法。将该字段添加到详细信息行中的所需位置,然后按照表达式字段的名称对报告进行排序,在这种情况下,请使用“RowNumber”。
根据哪种排序标准你想要“计数器”? – 2014-12-03 16:07:33