使用iif()的一点困惑

来源:互联网 发布:备案域名查询 编辑:程序博客网 时间:2024/06/08 08:26
在使用select调用iif()发现一个问题,百思不得其解,上来请教大家。
描述如下:
select a.tt01,a.tt02,b.tt03,iif(b.tt03=0,-1,(a.tt01+a.tt02)/(b.tt03/10000)) as tt04 where 条件 form a,b 
以上a,b表中调用的字段都是正常的数值型,但在生成的tt04中就会有生成“**”,用modi stru查看临时表结构,发现tt04的结构为N(2,0)所以仅有条件满足b.tt03=0和<>0但(a.tt01+a.tt02)/(b.tt03/10000)的计算结果小于100时才能正常显示,计算结果>=100的都显示“**”。

但如果先通过将(a.tt01+a.tt02)as t1与(b.tt03/10000) as t2生成一个临时表temp,再用一个select iif(b.tt03=0,-1,t1/t2) as tt04 where 条件 from temp,b 则能全部正常计算和显示。

想了半天也不知道问题在哪里?
0 0