您的位置:首页 > 其它

使用iif()的一点困惑

2015-11-14 12:05 246 查看
在使用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 则能全部正常计算和显示。

想了半天也不知道问题在哪里?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: