MySQL函数里有一个很有用的函数IFNULL,它的形式是IFNULL(fieldA,fieldB),意义是当字段fieldA是NULL时取fieldB,不是NULL时取fieldA的值。

这个函数与外连接配合使用时能起到Oracle的IIF或是NVL的作用:

以下代码供参考:

StringBuilder sb=new StringBuilder();
        sb.append("    select ");
        sb.append("           t1.fullName,IFNULL(t2.actualHour,0) as actualHour,t1.planhour,t1.annotatorId,t1.annotatorId,IFNULL(t2.actualHour,0)/t1.planhour as ratio");
        sb.append("    from ");
        sb.append("          XXshipTB  t1 ");
        sb.append("          left outer join (select userid,sum(hours) as actualHour from dayworkTB where (Date(date) between '"+fromDate+"' and '"+endDate+"') group by userid)  t2");
        sb.append("    on ");
        sb.append("           t1.annotatorId=t2.userid");
        sb.append("      and  abs(t2.actualHour-t1.planhour)>0.01");
        sb.append("    ORDER by ");
        sb.append("           ratio desc,t1.fullName asc");
        String sql=sb.toString();

最新文章

  1. js对象私有变量公有变量问题
  2. urllib下载文件
  3. 使用第三方工具覆写Object中方法
  4. NSBundle的使用,注意mainBundle和Custom Bundle的区别
  5. PHP魔术方法总结
  6. ssis的script task作业失败(调用外部dll)
  7. asp.net打印网页后自动关闭网页【无需插件】
  8. 开源内容管理系统Joomla正式发布3.5版本 基于PHP 7
  9. 201521123096《Java程序设计》第一周学习总结
  10. 为什么要学ADO.NET。。。什么是ADO.NET。。。
  11. Oracle完全复制表结构的存储过程
  12. Linux目录路径知识
  13. 常见微信小程序开发工具
  14. windows使用方法
  15. python之socket运用之传输大文件
  16. MVC扩展ActionInvoker,自定义ActionInvoker,根据请求数据返回不同视图
  17. 一线工程师带你深入学习和使用Kubernetes
  18. leecode刷题(20)-- 删除链表中的节点
  19. AndroidStudio刚開始学习的人
  20. node-sass安装失败的解决办法

热门文章

  1. stl-stack+括号配对问题
  2. 大型运输行业实战_day04_2_高级查询
  3. Spring AsyncRestTemplate
  4. Codeforces Beta Round#2
  5. [leetcode]347. Top K Frequent Elements 最高频的前K个元素
  6. fragment 事务回滚 ---动态创建fragment
  7. ROS学习笔记二(创建ROS软件包)
  8. SQL Cursor 基本用法[用两次FETCH NEXT FROM INTO语句?]
  9. 【转】MEF程序设计指南一:在应用程序中宿主MEF
  10. PAT 1035 插入与归并(25)(代码+思路+测试点分析)