奇怪的问题

今天遇到一个很奇怪的问题,记录一下。
我写了一个简单的查询语句,单表查询,其中有子查询。然后又用同样的方式写了一个一样的查询,不过第二次的查询把子查询摘出去了,把子查询单独写成了一个函数。然后,神奇的事情就发生了。
第一个查询语句:

 SELECT DECODE(sign(ZXYGHJ),1, (ZXYGHJ+(SELECT 
                                        NVL(YFZYQNFDL,0)
                                    FROM 
                                        ASTUDENT 
                                    WHERE 
                                        RQ=to_char((sysdate - interval '1' day ),'yyyy-mm-dd')))
                           , (SELECT 
                                  NVL(YFZYQNFDL,0)
                              FROM 
                                  ASTUDENT 
                              WHERE 
                                  RQ=to_char((sysdate - interval '1' day ),'yyyy-mm-dd')))DEF
 FROM ASTUDENT WHERE  RQ=to_char((sysdate - interval '0' day ),'yyyy-mm-dd')
 

第二个查询语句:

 SELECT DECODE(sign(ZXYGHJ),1,(ZXYGHJ+getyestday(YFZYQNFDL)),getyestday(YFZYQNFDL)) SD 
 FROM ASTUDENT WHERE  RQ=to_char((sysdate - interval '0' day ),'yyyy-mm-dd')

第一个查询结果:
奇怪的问题_第1张图片
第二个查询结果:
奇怪的问题_第2张图片
表中的数据:
奇怪的问题_第3张图片
显然第二种查询才是正确的,第一种错到每边儿了,不过初来乍到,数据库不是很会,实在没找出毛病来。路过大佬求指教!

你可能感兴趣的:(ORACAL,Study,java,oracal,数据库,select,decode,oracal,function)