本文共 861 字,大约阅读时间需要 2 分钟。
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();
本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/xiandedanteng/p/3329053.html,如需转载请自行联系原作者