循环遍历Oracle PL / SQL中的表

前端之家收集整理的这篇文章主要介绍了循环遍历Oracle PL / SQL中的表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经完成了SQL查询,但没有做任何使用循环的程序编写,所以我在这里迷路了.我正在使用Oracle sql Developer.可以在sql或PL / sql中完成

我有一张类似这样的表:

Person_ID score Name  Game_ID
1         10    jack  1
1         20    jack  2
2         15    carl  1
2         3     carl  3
4         17    steve 1

我怎样才能遍历这张桌子,以便我可以获得所有比赛的球员总得分.结果将是这样的:

Person_ID score Name
1         30    jack
2         18    carl
4         17    steve

另外还有额外的功劳如果我只想抓住说游戏1 2?

编辑:很抱歉没有清楚,但我确实需要循环,即使没有它可以完成.

发布后的解决方

此过程列出给定game_id的分数.如果省略参数,所有游戏将被总结:

create or replace procedure player_scores(i_game_id number default null) as 
begin
  for o in (select person_id,name,sum(score) score
      from games where game_id = nvl(i_game_id,game_id)
      group by person_id,name)
  loop
    dbms_output.put_line(o.person_id||' '||o.name||' '||o.score);
  end loop;
end player_scores;

以前的方案:

你不需要那个程序,只需要简单的查询

select person_id,sum(score)
  from your_table
  where game_id in (1,2)
  group by person_id,name

猜你在找的Oracle相关文章