最近需求中遇到一个计算问题,就是生成每个月某值的总和作为月份值,还会出现null值的情况。
nvl()函数:nvl(exception1,exception2)
如果exception1的计算结果为null值,则返回exception2的值,如果不为null,则返回exception1的值
exception1和exception2可以是任意数据类型,,常用null值计算。
如果均为exception1和exception2null,则返回null。
strWhere.append("and (select NVL(sum(XXXXX),0) from T_Payment_Info tpp where tpp.POLICY_ID = tpi.ID and to_char(XXXXX_DATE,'yyyy') between '" + year4 + "' and '" + year55 + "') != '0'");
decode()函数
主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明);
decode函数表达式为decode(列名,值1,表达式1,值2,表达式2,......,值n,表达式n)。
sum(decode(to_char(DATE,'mm'),'05',MONEY,0)) A5
就是把一哥月份的钱汇总成一个新的值A5