今天遇到一个很奇怪的问题,记录一下。
我写了一个简单的查询语句,单表查询,其中有子查询。然后又用同样的方式写了一个一样的查询,不过第二次的查询把子查询摘出去了,把子查询单独写成了一个函数。然后,神奇的事情就发生了。
第一个查询语句:
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')
第一个查询结果:
第二个查询结果:
表中的数据:
显然第二种查询才是正确的,第一种错到每边儿了,不过初来乍到,数据库不是很会,实在没找出毛病来。路过大佬求指教!