奇怪的问题

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

 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')

第一个查询结果:
在这里插入图片描述
第二个查询结果:
在这里插入图片描述
表中的数据:
在这里插入图片描述
显然第二种查询才是正确的,第一种错到每边儿了,不过初来乍到,数据库不是很会,实在没找出毛病来。路过大佬求指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值