ITPub博客

首页 > 数据库 > Oracle > 课程实践(一)续

课程实践(一)续

原创 Oracle 作者:luisedalian 时间:2014-01-18 10:08:04 0 删除 编辑
案例五

点击(此处)折叠或打开

  1. --5.1 bad
  2. select count(*) from myemp where salary < 2000;

  3.   COUNT(*)
  4. ----------
  5.          0

  6. Elapsed: 00:00:58.42

  7. select count(*) from myemp where salary between 2000 and 4000;

  8.   COUNT(*)
  9. ----------
  10.    5636096

  11. Elapsed: 00:00:40.69


  12. select count(*) from myemp where salary > 4000;

  13.   COUNT(*)
  14. ----------
  15.    8388608

  16. Elapsed: 00:00:41.40

  17. --5.2 good
  18. select count(case when salary < 2000 then 1 else null end) as count1,
  19.        count(case when salary between 2000 and 4000 then 1 else null end) as count2,
  20.        count(case when salary > 4000 then 1 else null end) as count3
  21. from myemp;

  22.     COUNT1 COUNT2 COUNT3
  23. ---------- ---------- ----------
  24.          0 5636096 8388608

  25. Elapsed: 00:00:42.14
结论:可以使用CASE子句在一个查询中返回多个结果,减少对表的扫描和访问次数。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1072430/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    5641821