zoukankan      html  css  js  c++  java
  • SQL中的数字格式化 (收藏)

    用sql语句来格式化double型的数据,比如,只取出小数点后面的两位
    一。主要方法

    --取小数位前数字,不考虑四舍五入
    select left('30000.72234', charindex('.', '30000.72234')-1)
    其中:charindex('.', '30000.72234')获得小数点的位置;-1则表示在小数点前面的全部,如果想获取小数点后面的n为,写成+n就可以了。还挺好用的。

    --每三位用逗号相隔,留2位小数,不考虑四舍五入
    select convert(varchar, cast(round(30000.72234,0) as money), 1)

    --每三位用逗号相隔,不留小数位,考虑四舍五入
    select left(convert(varchar, cast(round(30000.72234,0) as money), 1) , charindex('.', convert(varchar, cast(round(30000.72234,0) as money), 1))-1)


    二。CAST和 ROUND的比较
    1.
    SELECT CAST('123.456' as decimal)  将会得到 123(小数点后面的将会被省略掉)。
    如果希望得到小数点后面的两位。
    则需要把上面的改为
    SELECT CAST('123.456' as decimal(38, 2))

    ===>123.46
    自动四舍五入了!

    2.
    SELECT ROUND(123.75633, 2, 1),
    ROUND(123.75633, 2)
    上面的SQL得到的2个值是不一样的,前一个是:123.75000,后一个是:123.76000。
    因为前者在进行四舍五入之前,小数点后已经被截取,保留了2位。
    而后者则没有被截取,四舍五入时自然就会得到123.76000

  • 相关阅读:
    静态化之优化
    SEO小技巧
    apache 工具和简单优化
    apache rewrite机制
    nginx php win平台配置
    mvc 简单模型
    php无限分类三种方式
    【转】sqlserver查询数据库中有多少个表
    【转】sqlserver数据库之间的表的复制
    SET ANSI_NULLS (TransactSQL)
  • 原文地址:https://www.cnblogs.com/CodingPerfectWorld/p/1775754.html
Copyright © 2011-2022 走看看