如何获取oracle中“order by”sql返回的不同类别的索引?

时间:2016-07-18 19:26:24

标签: sql oracle

我们可以轻松获得如下的SQL结果:

SQL>select Name, Value from table order by Name;

Name   Value
------------
A      1
A      2
B      1
C      5
C      6
C      7

但是,有没有办法将名称链接到一个数字,以便可以形成不同名称的索引?假设我们不知道表中有多少不同的名称,并且不知道它们是什么。

Name   Value  idx
-----------------
A      1      0 
A      2      0
B      1      1
C      5      2
C      6      2
C      7      2

1 个答案:

答案 0 :(得分:2)

这可以使用窗口函数轻松完成:

select Name, 
       Value, 
       dense_rank() over (order by name) - 1 as idx
from table 
order by Name;