表里面全是电影节目,我想随机取8个,但上下级怎么处理?比如有电影
爱国者
爱情呼叫转移
宝贝计划
别拿自己不当干部
别惹小孩
冰河世纪2b
冰河世纪2a
彩票也疯狂
东方海盗传奇a
东方海盗传奇b
飞行者
侏罗纪公园iii
侏罗纪公园ii
侏罗纪公园i
音乐
兄弟
戏王之王
嬉戏江湖
屠龙传奇
天行者a
天行者b
太极张三丰a
太极张三丰b
太极a
太极b
双龙记
神枪手智多星
三分钟先生
忍者兵b
忍者兵a
奇迹b
奇迹a
破敌随机取8个后,怎么能上这种a b(也就是上下级)的不分开?即要不都不取,要不AB都得有.只取8个
爱国者
爱情呼叫转移
宝贝计划
别拿自己不当干部
别惹小孩
冰河世纪2b
冰河世纪2a
彩票也疯狂
东方海盗传奇a
东方海盗传奇b
飞行者
侏罗纪公园iii
侏罗纪公园ii
侏罗纪公园i
音乐
兄弟
戏王之王
嬉戏江湖
屠龙传奇
天行者a
天行者b
太极张三丰a
太极张三丰b
太极a
太极b
双龙记
神枪手智多星
三分钟先生
忍者兵b
忍者兵a
奇迹b
奇迹a
破敌随机取8个后,怎么能上这种a b(也就是上下级)的不分开?即要不都不取,要不AB都得有.只取8个
WITH a AS(
select '比如有电影' filmName from dual union all
select '爱国者' filmName from dual union all
select '爱情呼叫转移' filmName from dual union all
select '宝贝计划' filmName from dual union all
select '别拿自己不当干部' filmName from dual union all
select '别惹小孩' filmName from dual union all
select '冰河世纪2b' filmName from dual union all
select '冰河世纪2a' filmName from dual union all
select '彩票也疯狂' filmName from dual union all
select '东方海盗传奇a' filmName from dual union all
select '东方海盗传奇b' filmName from dual union all
select '飞行者' filmName from dual union all
select '侏罗纪公园iii' filmName from dual union all
select '侏罗纪公园ii' filmName from dual union all
select '侏罗纪公园i' filmName from dual union all
select '音乐' filmName from dual union all
select '兄弟' filmName from dual union all
select '戏王之王' filmName from dual union all
select '嬉戏江湖' filmName from dual union all
select '屠龙传奇' filmName from dual union all
select '天行者a' filmName from dual union all
select '天行者b' filmName from dual union all
select '太极张三丰a' filmName from dual union all
select '太极张三丰b' filmName from dual union all
select '太极a' filmName from dual union all
select '太极b' filmName from dual union all
select '双龙记' filmName from dual union all
select '神枪手智多星' filmName from dual union all
select '三分钟先生' filmName from dual union all
select '忍者兵b' filmName from dual union all
select '忍者兵a' filmName from dual union all
select '奇迹b' filmName from dual union all
select '奇迹a' filmName from dual union all
select '破敌' filmName from dual
)
SELECT fl, rownum rn
FROM (SELECT same, substr(MAX(sys_connect_by_path(filmname, ',')), 2) fl
FROM (SELECT filmname,
substr(filmname, 1, length(filmname) - 1) same,
row_number() over(PARTITION BY substr(filmname, 1, length(filmname) - 1) ORDER BY filmname) rn
FROM a)
WHERE substr(filmname, -1, 1) IN ('a', 'b')
OR length(REPLACE(filmname, 'a')) = length(filmname)
OR length(REPLACE(filmname, 'b')) = length(filmname)
START WITH rn = 1
CONNECT BY PRIOR rn = rn - 1
AND PRIOR same = same
GROUP BY same
ORDER BY dbms_random.VALUE)
WHERE rownum <= 8;
MovieFiles1=Hard Disk2\Video\落叶归根.wmv
MovieFiles2=Hard Disk2\Video\嬉戏江湖.wmv
MovieFiles3=Hard Disk2\Video\连环局.wmv
MovieFiles4=Hard Disk2\Video\侏罗纪公园ii.wmv
MovieFiles5=Hard Disk2\Video\侏罗纪公园i.wmv
MovieFiles6=Hard Disk2\Video\屠龙传奇.wmv
MovieFiles7=Hard Disk2\Video\爱国者.wmv
MovieFiles8=Hard Disk2\Video\兄弟.wmv
MovieFiles9=Hard Disk2\Video\龙虎门.wmv
MovieFiles10=Hard Disk2\Video\飞行者.wmv
MovieFiles11=Hard Disk2\Video\侏罗纪公园iii.wmv
MovieFiles12=Hard Disk2\Video\别拿自己不当干部.wmv
MovieFiles13=Hard Disk2\Video\破敌.wmv
MovieFiles14=Hard Disk2\Video\爱情呼叫转移.wmv
MovieFiles15=Hard Disk2\Video\音乐.wmv
MovieFiles16=Hard Disk2\Video\憨豆先生的假期2.wmv
MovieFiles17=Hard Disk2\Video\戏王之王.wmv
MovieFiles18=Hard Disk2\Video\疯狂的石头.wmv
MovieFiles19=Hard Disk2\Video\彩票也疯狂.wmv
MovieFiles20=Hard Disk2\Video\男子 汉大丈夫.wmv
MovieFiles21=Hard Disk2\Video\空中决战.wmv
MovieFiles22=Hard Disk2\Video\三分钟先生.wmv
MovieFiles23=Hard Disk2\Video\墨攻.wmv