zoukankan      html  css  js  c++  java
  • SqlServer经典函数之数字去零

    需求:

           针对带有小数点的数字信息,去除小数点后多余的零

    可能存在的情况:

        1、精度范围内,出现多余的零    eg:1234.3400     想要的结果为1234.34

        2、精度变大出现的多余的零,或者没有实际小数部分的数据     eg:1234.0      想要的结果为 1234

       3、数据末尾为小数点,但是没有实际的小数    eg:1234.    想要的结果为1234

    ----去零函数 ---去除小数点后多余的零  select dbo.ClearZero('1245.3400')       ---结果为1245.34
    create function [dbo].[ClearZero]
    (@Number varchar(200))
    returns varchar(200)
    as
    begin
        if @Number = '' or @Number is null     ---如果为空,直接返回
            return null
        else
        begin
            declare @PointIndex int
            set @PointIndex = charindex('.',@Number)  
            if @PointIndex = 0 return @Number      ---如果不是浮点数,直接返回
            if @PointIndex = len(@Number) return replace(@Number,'.','')    ----数字末尾有小数点,直接删除返回
            else
            begin
                if right(@Number,1) = '0'               ---递归调用,进行去零操作
                begin
                    set @Number = substring(@Number,1,len(@Number) - 1)
                    return dbo.ClearZero(@Number)
                end
                else
                    return @Number
            end
        end
        return null
    end
    GO
  • 相关阅读:
    vs 2015 安装
    NPOI封装
    c#事件求解
    一个ERP系统的磕磕碰碰
    谁动了我的产品
    MVC Sesion丢失问题
    设计模式之类关系
    免费的SqlServer优化辅助工具:SqlOptimize (原创)
    Entity Framework Linq 简单笔记
    RhinoMocks简单范例
  • 原文地址:https://www.cnblogs.com/xiaotao726/p/4713145.html
Copyright © 2011-2022 走看看