日期:2014-05-17 浏览次数:20633 次
我很想说。楼主,这两个sql真不一样结果 --这个sql,就是统计table的件数啊,id-3是没啥实际意义的啊 1,select count(id-3) from table --这个sql,是统计table表中id>3的件数啊 2,select count(1) from table where id>3 如果非要说效率的话,那也是第二个啊?第一个你要敢什么啊?还id-3??木有用啊
------解决方案--------------------
如果非要算效率..肯定是count(1) 至少查询的时候不用去查字段的所属表..也不用进行id-3运算
------解决方案--------------------
当然是第2个效率高些,count(1)不用到数据字典中检索字段,where先过滤不符合条件的记录,而且没有id -3运算。
------解决方案--------------------
SQL> select id from a;
ID
---------------------------------------
1
2
3
4
5
SQL> select count(id-3) from a;
COUNT(ID-3)
-----------
5
SQL> select count(*) from a where id>3;
COUNT(*)
----------
2
------解决方案--------------------
没懂这2个语句比较效率的意义何在
另外话说 10g后 count(1) 和count(*) 米差别了哦