|
|
原帖由 tyrbl 于 2010-5-14 13:53 发表 ![]()
能否解释一下:“3、求组合
column xmlpath format a15
select rn, sys_connect_by_path(rn, ',') xmlpath from (select rownum rn from dual connect by level
这个写法的意思是:求出所有5个中分别取1个,2个, 3个, 4个, 5个的组合。
connect by rn<prior rn的意思是强行排序,这样就排除了其他相同的、只是顺序不同的组合。
假如你只想要C(3,5), 只需加上WHERE限制:
select rn, sys_connect_by_path(rn, ',') xmlpath
from (select rownum rn from dual connect by level<6)
WHERE LEVEL=3
connect by rn<prior rn;
如果要的不是组合而是排列,比如P(3,5)可以这么写:
select rn, sys_connect_by_path(rn, ',') xmlpath
from (select rownum rn from dual connect by level<6)
WHERE LEVEL=3
connect by NOCYCLE rn<>prior rn; |
|