• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    sql 自定义百分比转换小数函数代码
    复制代码 代码如下:

    --CAST 和 CONVERT 函数 Percentage
    DECLARE @dec decimal(5,3), @var varchar(10),@hun decimal(5,1)
    set @dec=0.025
    set @hun=@dec*100
    set @var=cast(@hun as varchar(20))+'%'
    select @var

    ---小数转化为百分数函数 GetPercentageString
    ---涂聚文 Geovin Du
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetPercentageString]') and xtype in (N'FN', N'IF', N'TF'))
    drop function [dbo].[GetPercentageString]
    GO
    CREATE function GetPercentageString
    (
    @dec decimal(10,3)
    )
    returns varchar(20)
    AS
    BEGIN
    DECLARE @var varchar(10),@hun decimal(10,1)
    SET @hun=@dec*100
    SET @var=cast(@hun as varchar(20))+'%'
    RETURN @var
    END
    GO
    --测试数据 涂聚文 Geovin Du
    SELECT [dbo].[GetPercentageString] (0.05)
    SELECT [dbo].[GetPercentageString] (0.25)
    SELECT [dbo].[GetPercentageString] (1.25)

    --1. 查询字符串中是否包含非数字字符
    SELECT PATINDEX('%[^0-9]%', '1235X461')
    SELECT PATINDEX('%[^0-9]%', '12350461')
    --2. 查询字符串中是否包含数字字符
    SELECT PATINDEX('%[0-9]%', 'SUYLLGoO')
    SELECT PATINDEX('%[0-9]%', 'SUYLLG0O')


    DECLARE @dec decimal(10,4), @var varchar(10),@hun decimal(10,4),@I INT,@K INT,@S VARCHAR(20)
    SET @var='5.23%'
    --SELECT @K=LEN(@var)
    --SELECT @S=LEFT(@var,@K-1)
    SELECT @S=RIGHT(@var,1)
    --SELECT @S
    SELECT @I=CHARINDEX('%',@S)
    IF @I>0
    BEGIN
    SET @var=REPLACE(@var,'%','')
    SET @hun=CAST(@var AS decimal(10,4))
    SET @dec=@hun/100
    SELECT @dec
    END
    ELSE
    BEGIN
    SELECT @dec=NULL --'无效数据'
    END


    --百分数转化为小数函数 GetPercentageNumber
    ---涂聚文 Geovin Du
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GetPercentageNumber]') and xtype in (N'FN', N'IF', N'TF'))
    drop function [dbo].[GetPercentageNumber]
    GO
    CREATE function GetPercentageNumber
    (
    @var varchar(10)
    )
    returns decimal(10,4)
    AS
    BEGIN
    DECLARE @dec decimal(10,4), @hun decimal(10,4),@I INT,@K INT,@S VARCHAR(20)
    SELECT @S=RIGHT(@var,1)
    --SELECT @S
    SELECT @I=CHARINDEX('%',@S)
    IF @I>0
    BEGIN
    SET @var=REPLACE(@var,'%','')
    SET @hun=CAST(@var AS decimal(10,4))
    SET @dec=@hun/100
    --SELECT @dec
    END
    ELSE
    BEGIN
    SELECT @dec=NULL --'无效数据'
    END
    RETURN @dec
    END
    GO
    --测试数据 涂聚文 Geovin Du
    SELECT [dbo].[GetPercentageNumber] ('5.23%')
    SELECT [dbo].[GetPercentageNumber] ('%0.23')
    上一篇:合并SQL脚本文件的方法分享
    下一篇:sql ntext数据类型字符替换实现代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    sql 自定义百分比转换小数函数代码 sql,自定义,百分比,转换,