• SQL Server判断小数位数


    项目中需要写一规则,目的是判断数值的小数位数,可以分为2中情况、

      1.直接以小数点为分界点,小数点后的数据表示小数的位数,此种情况比较简单,直接使用CHARINDEX函数就可以搞定

      其中CHARINDEX的用法自行找API

      语法:select  len(字段名)-CHARINDEX('.',字段名) from 表名

    eg:select len(LDLC)-CHARINDEX('.',LDLC) from t_ld

      2.由于SQL中一般在定义表时,就设定了表中数据的类型以及长度,那么数据不足此长度时,系统会在后面默认加0,那么直接通过方法1查询小数位数就不准确,例如数据库中本来存储的数据为1.23,而在定义表时,定义其长度为3位,虽然认为看数据的时候是1.23,时间上通过len(xxx),其结果为3;还有一种情况就是用户统计小数位数的时候,不想统计末尾的0,也就是数据为1.230时,用户希望其小数位数2,即统计len(1.23)。基于上述需求,其代码如下:

     1 CreateFUNCTION [dbo].[getDecimalLenth]( @Number nvarchar(20))
     2 RETURNS nvarchar(20)
     3 AS 
     4 begin
     5   `WHILE RIGHT(@Number,1) =0 and CHARINDEX('.',@Number)>0 and left(RIGHT(@Number,2),1)<>'.'
     6     BEGIN 
     7       Set @Number=LEFT(@Number,LEN(@Number)-1) 
     8     END
     9     return case when CHARINDEX('.',@Number)>0 and right(@Number,1)<>0 
    10         then len(@Number)-CHARINDEX('.',@Number) 
    11         else 0 end
    12 end
  • 相关阅读:
    IOS之UIKit_Day13
    IOS之UIKit_Day12
    IOS之UIKit_Day11
    IOS之UIKit_Day10
    iOS设计模式之工厂模式
    常用操作
    盒子模式
    block循环使用问题
    IOS-sqlite3
    IOS-View用作控制器
  • 原文地址:https://www.cnblogs.com/dz-boss/p/7826971.html
Copyright © 2020-2023  润新知