没有订单的排名

时间:2015-05-15 14:04:30

标签: oracle ranking

有没有办法在不按列排序的情况下“动态”创建row_number?我有这个问题:

select regexp_substr(',A-B,B-C,C-D', '[^,]+', 1, level) as legs
          from dual
        connect by regexp_substr(',A-B,B-C,C-D', '[^,]+', 1, level) is not null

我需要保持旋转的顺序,但我还需要一个等级来确保旋转是好的。我试着看看附近的排名,dense_rank,row_number,......但他们都需要一个订单,我不能使用。

会有类似的东西

Rank   |   Legs  
 1     |   A-B
 2     |   B-C
 3     |   C-D

1 个答案:

答案 0 :(得分:2)

您可以使用level,但需要使用别名:

select level as rnk,
  regexp_substr(',A-B,B-C,C-D', '[^,]+', 1, level) as legs
from dual
connect by regexp_substr(',A-B,B-C,C-D', '[^,]+', 1, level) is not null;

       RNK LEGS       
---------- ------------
         1 A-B         
         2 B-C         
         3 C-D