oracle中substr的问题/

oracle中substr的问题/
今天,碰到一个怪问题,同一个sql语句,运行产生不同的结果,
SELECT  a.TAXPAYERID TAXPAYERID$ 0 , a.INDEPOTYEAR INDEPOTYEAR$ 2
SUM (a.TAXFINAL) SUMTAXFINAL$ 1  
FROM  F_LVY_LEVYINPUTYEARHISTORYDATA a 
WHERE  substr ( a.TAXPAYERID , 1  ,  1  )  ' T '   and  a.indepotyear = ' 2006 '   GROUP   BY  a.TAXPAYERID, a.INDEPOTYEAR  having   SUM (a.TAXFINAL)  >= 1000000  
第一次运行产生1357条记录,然后接着运行就变为1359(此为正确数),到网上找了下,没有找到原因, 最后把substr ( a.TAXPAYERID ,1 , 1 ) 'T' 改为 a.TAXPAYERID not like 'T%'没有问题,把上面sql改为
SELECT  a.TAXPAYERID TAXPAYERID$ 0 , a.INDEPOTYEAR INDEPOTYEAR$ 2 SUM (a.TAXFINAL) SUMTAXFINAL$ 1   FROM  F_LVY_LEVYINPUTYEARHISTORYDATA a  WHERE  a.indepotyear = ' 2006 '   GROUP   BY  a.TAXPAYERID, a.INDEPOTYEAR  having   SUM (a.TAXFINAL)  >= 1000000   and  substr ( a.TAXPAYERID , 1  ,  1  )  ' T '  
也没有问题, 而所有记录中substr ( a.TAXPAYERID ,1 , 1 )只有三种0,1,T, a.TAXPAYERID没有为空的,不清楚为何如此??

你可能感兴趣的:(oracle中substr的问题/)