手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >sql 自定义百分比转换小数函数代码
sql 自定义百分比转换小数函数代码
摘要:复制代码代码如下:--CAST和CONVERT函数PercentageDECLARE@decdecimal(5,3),@varvarchar...

复制代码 代码如下:

--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 server2008 排序函数

Sql Server基本函数

sql server中千万数量级分页存储过程代码

SqlServer 2005 中字符函数的应用

sql2005 存储过程分页代码

sql查询重复记录、删除重复记录方法大全

sqlserver 通用分页存储过程

sqlserver 字符串分拆 语句

oracle+110个常用函数

sql 语句 取数据库服务器上所有数据库的名字

精品推荐
分类导航