无顺序排名
Ranking without an order by
有没有办法在不按列排序的情况下创建 row_number "on the fly"?我有这个查询:
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
您可以只使用 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
有没有办法在不按列排序的情况下创建 row_number "on the fly"?我有这个查询:
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
您可以只使用 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