select max()...总归会返回纪录的,如果表是空的,就返回一条值为null的纪录。如下:
SQL> select * from agents
2 ;
no rows selectedSQL> select max(percent) from agents;
MAX(PERCENT)
------------SQL> select count(*) from (select max(percent) from agents);
COUNT(*)
----------
1
以上现实有一条纪录,所以locsRs.Eof永远为非真。用nvl函数做一下变化,把null变成0就可以解决问题。
SQL> select nvl(max(percent),0) from agents;
NVL(MAX(PERCENT),0)
-------------------
0
SQL> select * from agents
2 ;
no rows selectedSQL> select max(percent) from agents;
MAX(PERCENT)
------------SQL> select count(*) from (select max(percent) from agents);
COUNT(*)
----------
1
以上现实有一条纪录,所以locsRs.Eof永远为非真。用nvl函数做一下变化,把null变成0就可以解决问题。
SQL> select nvl(max(percent),0) from agents;
NVL(MAX(PERCENT),0)
-------------------
0
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货