日期:2014-05-17  浏览次数:20831 次

select count(*) num form aa查询的内容放到游标里,用循环语句得出游标aa.num怎么不对?
我用上述语句,用循环判断aa.num的值,为什么不是实际的值,而是第一次循环为6,第二次循环为5,这是为什么?谢谢

------解决方案--------------------
问题应该出在:
CURSOR cur0 IS
SELECT year, COUNT(*) aa
FROM 表A
WHERE id = ID1 OR id = ID2
GROUP BY year, id;
你再将值传进去测试一下;
不过在你的函数中,逻辑上好像存在一些问题:
1、函数只能返回最后一个值。你的函数中不论你怎样让它循环,循环完成后你让它的返回值始终是1,因为return 1写在了循环之外,所以为返回值1;
2、个人认为你的需求不需要在函数中加游标,如果没有游标当然也就不需要循环读数据了;你完全只需要写一个固定的SQL查出来放在变量里面,再进行一个判断,再返回值就可以了。