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

2022-05-24 0 654

复制代码 代码如下:

–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’)

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 MsSql sql 自定义百分比转换小数函数代码 https://www.niceym.com/60339.html