需求:

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

可能存在的情况:

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) = '' ---递归调用,进行去零操作
begin
set @Number = substring(@Number,1,len(@Number) - 1)
return dbo.ClearZero(@Number)
end
else
return @Number
end
end
return null
end
GO

SQL Server经典函数之数字去零的更多相关文章

  1. SqlServer经典函数之数字去零

    需求: 针对带有小数点的数字信息,去除小数点后多余的零 可能存在的情况: 1.精度范围内,出现多余的零    eg:1234.3400     想要的结果为1234.34 2.精度变大出现的多余的零, ...

  2. SQL server经典电子书、工具和视频教程汇总

    SQL server经典电子书.工具和视频教程汇总 SQL server经典电子书.工具和视频教程汇总 SQL Server是高校计算机专业的一门必修课程,同时众多企业采用SQL Server作为数据 ...

  3. sql server charindex函数和patindex函数详解(转)

    charindex和patindex函数常常用来在一段字符中搜索字符或字符串.假如被搜索的字符中包含有要搜索的字符,那么这两个函数返回一个非零的整数,这个整数是要搜索的字符在被搜索的字符中的开始位数. ...

  4. SQL SERVER修改函数名引起的问题

    1. 问题 今天遇到一个奇怪的问题:使用sp_helptext XXX查询出来的函数定义名竟然跟函数名不同,而sp_helptext实际是查询sys.all_sql_modules这个系统视图的.直接 ...

  5. 数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数

    SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函 ...

  6. SQL Server日期函数总结

    获得一个月的天数:首先到得一个月最后一天的日期,通过 SQL Server 日期函数 day() 取得日期中的“天 ”部分 获得 2008 年 2 月份的天数:select day(cast('200 ...

  7. SQL SERVER 2008- 字符串函数

    /* 1,ASCII返回字符表达式中最左侧字符的ASCII代码值 仅返回首字母的ASCII码值 parameter char或varchar returns integer */ SELECT ASC ...

  8. Oracle 与Sql Server常用函数对比

    来自:http://topic.csdn.net/u/20080704/08/b2b8c42f-b0d6-4cda-98b1-6e4a279b4ff8.html 感谢楼主 函数 SQLServer和O ...

  9. SQL Server 常用函数总结

    SQL去空格函数 1.ltrim(‘内容’)--去掉字符左边的空格 代码如下 declare @str varchar(100) set @str=' ADFADF' select @str sele ...

随机推荐

  1. 【转】【MySql】Update批量更新与批量更新多条记录的不同值实现方法

    批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other ...

  2. e650. 激活事件

    An object wishing to fire item events must implement ItemSelectable. This example shows typical code ...

  3. php header函数下载文件实现代码

    在php中header函数的使用很大,header不但可以向客户端发送原始的 HTTP 报头信息,同时还可以直接实现文件下载操作 header函数最常用的不是用于下载而是用于发送http类的 跳转 它 ...

  4. 3D游戏与计算机图形学中的数学方法-点线面

    <易传·系辞上传>:”易有太极,是生两仪,两仪生四象,四象生八卦.” 借用一下古代先人们的智慧引一下本文的主题-三维图形中的点线面,在三维几何中也有一句话可以和上面的话相对应:由点成线,由 ...

  5. php十行代码将xml转成数组

    <?php header("Content-Type:text/html;charset=utf-8"); function xml2array($filename){ $x ...

  6. C#实现大数相加

    在C#中,我们经常需要表示整数.但是,c#的基本数据类型中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间的数 ...

  7. 第四章 Spring.Net 如何管理您的类___对象的自动装配

    由于这几天都比较忙,所以对笔记暂时没有更新. Spring.NET具有自动装配的能力,也就是说,Spring.NET可以通过对象的定义自动分辨某个对象的协作对象.自动装配是针对单个对象(按:针对每个协 ...

  8. day25<多线程+&设计模式&GUI>

    多线程(单例设计模式)(掌握) 多线程(Runtime类) 多线程(Timer)(掌握) 多线程(两个线程间的通信)(掌握) 多线程(三个或三个以上间的线程通信) 多线程(线程间的通信注意的问题) 多 ...

  9. Android权限全记录(转)

    常用权限: 读写存储卡装载和卸载文件系统 android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STOR ...

  10. Html解析

    相关解析组件: HtmlAgilityPack CsQuery Winista.Text.HtmlParser