zoukankan      html  css  js  c++  java
  • 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;
    不過因為我要用到百分比,就改成了

    SELECT CAST(field1 AS FLOAT)/field2 * 100 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进行非空判断。

    ----------------------------------------------------------------

    sql 进一法和四舍五入:

    复制代码
    --进一法:执行结果为2
    select ceiling(1.1)

    --四舍五入:执行结果:2,1,3.0
    select round(1.6,0)
    select round(1.3,0)
    select round(2.6,1)
    复制代码


    备注:
    CAST函数用来类型转换
    ROUND函数用来控制小数位数

  • 相关阅读:
    查找网页元素对应的js代码
    29 图片缩小案例
    29 三级缓存案例
    [Angular2]eclipse中angular2开发环境的搭建
    28 自定义View流式布局
    28 自定义滑动开关
    28 自定义View侧滑栏
    28自定义View 模仿联系人字母侧栏
    28 自定义View画坐标和柱状图
    JFinal中使用QuartzPlugin报ClassCastException解决方法
  • 原文地址:https://www.cnblogs.com/yinzhilei/p/7872944.html
Copyright © 2011-2022 走看看