加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 09:29:17 所属栏目:MsSql教程 来源:网络整理
导读:div class="codetitle" a style="CURSOR: pointer" data="429" class="copybut" id="copybut429" onclick="doCopy('code429')" 代码如下:div class="codebody" id="code429" --CAST 和 CONVERT 函数 Percentage DECLARE @dec decimal(5,3),@var varchar(10),

<div class="codetitle"><a style="CURSOR: pointer" data="429" class="copybut" id="copybut429" onclick="doCopy('code429')"> 代码如下:<div class="codebody" id="code429">
--CAST 和 CONVERT 函数 Percentage
DECLARE @dec decimal(5,3),@var varchar(10),@hun decimal(5,1)
set @dec=0.025
set @hun=@dec100
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=@dec100
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),@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'TF'))
drop function [dbo].[GetPercentageNumber]
GO
CREATE function GetPercentageNumber
(
@var varchar(10)
)
returns decimal(10,4)
AS
BEGIN
DECLARE @dec decimal(10,@S VARCHAR(20)
SELECT @S=RIGHT(@var,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')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读