sql 自定義百分比轉換小數(shù)函數(shù)代碼
更新時間:2011年09月05日 20:46:34 作者:
sqlserver中自定義百分比轉換小數(shù)函數(shù),需要的朋友可以參考下。
復制代碼 代碼如下:
--CAST 和 CONVERT 函數(shù) 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
---小數(shù)轉化為百分數(shù)函數(shù) 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
--測試數(shù)據(jù) 涂聚文 Geovin Du
SELECT [dbo].[GetPercentageString] (0.05)
SELECT [dbo].[GetPercentageString] (0.25)
SELECT [dbo].[GetPercentageString] (1.25)
--1. 查詢字符串中是否包含非數(shù)字字符
SELECT PATINDEX('%[^0-9]%', '1235X461')
SELECT PATINDEX('%[^0-9]%', '12350461')
--2. 查詢字符串中是否包含數(shù)字字符
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 --'無效數(shù)據(jù)'
END
--百分數(shù)轉化為小數(shù)函數(shù) 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 --'無效數(shù)據(jù)'
END
RETURN @dec
END
GO
--測試數(shù)據(jù) 涂聚文 Geovin Du
SELECT [dbo].[GetPercentageNumber] ('5.23%')
SELECT [dbo].[GetPercentageNumber] ('%0.23')
相關文章
sqlserver 實現(xiàn)收縮數(shù)據(jù)庫日志操作
這篇文章主要介紹了sqlserver 實現(xiàn)收縮數(shù)據(jù)庫日志操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01SqlServer應用之sys.dm_os_waiting_tasks 引發(fā)的疑問(下)
這篇文章主要介紹了SqlServer應用之sys.dm_os_waiting_tasks 引發(fā)的疑問(下) 的相關資料,需要的朋友可以參考下2015-12-12Sql Server中判斷表、列不存在則創(chuàng)建的方法
這篇文章主要給大家分享了Sql Server中判斷表、列是否存在,如果不存在則創(chuàng)建的方法,文章先給大家簡單介紹了Sql Server中判斷表中某列是否存在的方法,文中給出了詳細的示例代碼,需要的朋友們可以參考借鑒,下面來一起看看吧。2017-03-03SQLServer 數(shù)據(jù)導入導出的幾種方法小結
在涉及到SQL Server編程或是管理時一定會用到數(shù)據(jù)的導入與導出, 導入導出的方法有多種,結合我在做項目時的經(jīng)歷做一下匯總2010-06-06win2003上安裝SQL2000時CD-KEY(序列號)無法驗證解決方法
win2003上安裝SQL2000時CD-KEY(序列號)無法驗證解決方法,一般都是使用第二種方法。2011-08-08