使用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 则能全部正常计算和显示。
想了半天也不知道问题在哪里?
描述如下:
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 则能全部正常计算和显示。
想了半天也不知道问题在哪里?
相关文章推荐
- 纵观jBPM:从jBPM3到jBPM5以及Activiti5(转)
- poj-2579
- linux进程间的通信-无名管道
- linux下 火狐浏览器 默认语言更改为中文
- 介绍一下海量数据的处理方法
- html5基础知识第三章表单
- iPhone开发--渐隐渐显动画效果
- 专业OA办公系统源码(三层架构+抽象工厂)
- HTML4/4.01,XHTML 1.0/1.1/2.0,HTML5,之间有什么区别?
- mybatis(8)一对多查询
- Mysql使用技巧
- UITextField及其方法
- Android JSON解析并展现在listactivity实例
- 几个点
- Linux挂载U盘-实战操作
- Xshell连接ubuntu
- System.arraycopy方法的使用
- 如何进行软件系统架构设计?
- Parallel Programming-多消费者,多生产者同时运行并行
- 抽象类传递对象