`
zl-2577
  • 浏览: 80980 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SQLServer中进行sql除法运算结果为小数时显示0的解决方案

 
阅读更多
例如:
SELECT field1/field2 FROM TB;

  当 field1的数值 > field2的数值时,除法得出的结果是<1的,即0.xxxxxx

  这个时候在DB2的环境下SELECT出来的值是0

解決方法:

先把field1转换成DOUBLE类型的,这样计算出来的就会得出小数点了,会显示出0.xxxx

SELECT CAST(field1 AS FLOAT)/field2 FROM TB;

ps.网上搜的资料,写的是double,但在SQL Server2008中一直报错,改成FLOAT就没问题了。

小数点显示4位小数。可以进一步四舍五入,保留两位小数点

SELECT ROUND(CAST(field1 AS DOUBLE)/field2, 2) FROM TB;

如果数据列的值为NULL,将其设置为0,那么sql就要这么写

  SELECT ROUND(COALESCE(CAST(field1 AS DOUBLE), 0)/field2, 2) FROM TB;

  COALESCE这个函数系统的用法如下:

  a. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,”)把NULL转换成”;

  b. 输入类型为整型,且允许为空的,可以使用COALESCE(inputParameter,0),把空转换成0;

  c. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,”)把NULL转换成”,然后判断函数返回值是否为”;

  d. 输入类型为整型,且是非空的,不需要使用COALESCE函数,直接使用IS NULL进行非空判断。
分享到:
评论

相关推荐

    【项目实践】商业计算怎样才能保证精度不丢失(csdn)————程序.pdf

    2. **定长整数**:另一种解决方案是使用定长整数类型,如Java中的`BigInteger`,尽管它不处理小数,但在处理大整数时可以保持精度。在商业计算中,如果金额不涉及小数部分,这种方法也可以考虑。 在处理BigDecimal...

    C#编程经验技巧宝典

    2 &lt;br&gt;0003 设置程序代码行序号 3 &lt;br&gt;0004 开发环境全屏显示 3 &lt;br&gt;0005 设置窗口的自动隐藏功能 3 &lt;br&gt;0006 根据需要创建所需解决方案 4 &lt;br&gt;0007 如何使用“验证的目标架构”功能 4 ...

    易语言程序免安装版下载

    修改外部数据库在4.12版中导致的不兼容问题,并增加了对MS SQL Server数据库中image和text字段类型的说明。 7. 修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8....

Global site tag (gtag.js) - Google Analytics