--============================================ --16 进 8 delete from worldcup_vs_team where round_level<>16; commit; set serveroutput on begin dbms_output.put_line(' --- WORLD CUP 1/8决赛 ---'); dbms_output.put_line(' '); for cur in (select * from worldcup_vs_team_level_8) loop dbms_output.put_line(LPAD(cur.team_name_A,10,' ')||' VS '||RPAD(cur.team_name_b,10,' ')); end loop; dbms_output.put_line(' '); dbms_output.put_line(' 1 for win,0 for lose'); end; / define score_level8=&1 begin for cur2 in (select * from worldcup_vs_team_level_8) loop insert into worldcup_vs_team select round_level/2,cur2.vs_a||cur2.vs_b,substr(cur2.vs_a,2,1), floor((cur2.rn+1)/2),decode(substr('&score_level8',cur2.rn,1),1,cur2.team_name_A,0,cur2.team_name_b) from worldcup_vs_team where group_id||group_rank=decode(substr('&score_level8',cur2.rn,1),1,cur2.vs_a,0,cur2.vs_b); commit; end loop; end; / --8 进 4 delete from worldcup_vs_team where round_level=4; commit; set serveroutput on begin dbms_output.put_line(' --- WORLD CUP 1/4决赛 ---'); dbms_output.put_line(' '); for cur in (select * from worldcup_vs_team_level_4) loop dbms_output.put_line(LPAD(cur.team_name_A,10,' ')||' VS '||RPAD(cur.team_name_b,10,' ')); end loop; dbms_output.put_line(' '); dbms_output.put_line(' 1 for win,0 for lose'); end; / define score_level4=&2 begin for cur2 in (select * from worldcup_vs_team_level_4) loop insert into worldcup_vs_team select round_level/2,cur2.vs_a||cur2.vs_b,substr(cur2.vs_a,2,1), floor((cur2.rn+1)/2),decode(substr('&score_level4',cur2.rn,1),1,cur2.team_name_A,0,cur2.team_name_b) from worldcup_vs_team where group_id||group_rank=decode(substr('&score_level4',cur2.rn,1),1,cur2.vs_a,0,cur2.vs_b); commit; end loop; end; / --4 进 2 delete from worldcup_vs_team where round_level=2; commit; set serveroutput on begin dbms_output.put_line(' --- WORLD CUP 1/2决赛 ---'); dbms_output.put_line(' '); for cur in (select * from worldcup_vs_team_level_2) loop dbms_output.put_line(LPAD(cur.team_name_A,10,' ')||' VS '||RPAD(cur.team_name_b,10,' ')); end loop; dbms_output.put_line(' '); dbms_output.put_line(' 1 for win,0 for lose'); end; / define score_level2=&3 begin for cur2 in (select * from worldcup_vs_team_level_2) loop --winner insert into worldcup_vs_team select round_level/2,cur2.vs_a||cur2.vs_b,substr(cur2.vs_a,2,1), 1,decode(substr('&score_level2',cur2.rn,1),1,cur2.team_name_A,0,cur2.team_name_b) from worldcup_vs_team where group_id||group_rank=decode(substr('&score_level2',cur2.rn,1),1,cur2.vs_a,0,cur2.vs_b); --loser insert into worldcup_vs_team select round_level/2,cur2.vs_a||cur2.vs_b,substr(cur2.vs_a,2,1), 2,decode(substr('&score_level2',cur2.rn,1),0,cur2.team_name_A,1,cur2.team_name_b) from worldcup_vs_team where group_id||group_rank=decode(substr('&score_level2',cur2.rn,1),0,cur2.vs_a,1,cur2.vs_b); commit; end loop; end; / --冠军决赛,3、4名比赛 delete from worldcup_vs_team where round_level=1; commit; set serveroutput on begin dbms_output.put_line(' --- WORLD CUP 决赛 ---'); dbms_output.put_line(' '); for cur in (select * from worldcup_vs_team_final) loop dbms_output.put_line(LPAD(cur.team_name_A,10,' ')||' VS '||RPAD(cur.team_name_b,10,' ')); end loop; dbms_output.put_line(' '); dbms_output.put_line(' 1 for win,0 for lose'); end; / define score_final=&4 begin for cur2 in (select * from worldcup_vs_team_final) loop --winner insert into worldcup_vs_team select distinct round_level/2,cur2.vs_a||cur2.vs_b,cur2.rn, 1,decode(substr('&score_final',cur2.rn,1),1,cur2.team_name_A,0,cur2.team_name_b) from worldcup_vs_team where group_id||group_rank=decode(substr('&score_final',cur2.rn,1),1,cur2.vs_a,0,cur2.vs_b) and round_level=2; --loser insert into worldcup_vs_team select distinct round_level/2,cur2.vs_a||cur2.vs_b,cur2.rn, 2,decode(substr('&score_final',cur2.rn,1),0,cur2.team_name_A,1,cur2.team_name_b) from worldcup_vs_team where group_id||group_rank=decode(substr('&score_final',cur2.rn,1),0,cur2.vs_a,1,cur2.vs_b) and round_level=2; commit; end loop; end; / --1-4名次 set serveroutput on begin dbms_output.put_line('--- WORLD CUP 名次 ---'); dbms_output.put_line(' '); for cur in (select * from worldcup_final_order) loop dbms_output.put_line(' '||RPAD(cur.rn,5,' ')||RPAD(cur.team_name,10,' ')); end loop; end; /