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')
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)