ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle中substr的问题/

oracle中substr的问题/

原创 Linux操作系统 作者:piliskys 时间:2006-09-20 00:00:00 0 删除 编辑
今天,碰到一个怪问题,同一个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$2SUM(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没有为空的,不清楚为何如此??

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/134308/viewspace-140595/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 杂记
请登录后发表评论 登录
全部评论

注册时间:2008-01-14

  • 博文量
    68
  • 访问量
    161243