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

来源:asp之家 时间:2011-09-30 11:54:01 

代码如下:


--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')

标签:百分比,小数
0
投稿

猜你喜欢

  • 惰性函数定义模式

    2007-09-26 20:56:00
  • DWCS3-CSS布局之二CSS规则定义

    2008-06-16 13:36:00
  • 20年来我得到的20条编程经验

    2010-05-26 13:44:00
  • 远程连接access数据库的几个方法

    2008-10-21 21:16:00
  • MySQL 语言参考

    2007-11-21 20:37:00
  • SQL Server实现分布式数据库系统的终极目标

    2010-08-05 14:57:00
  • 搜索结果页(SERP):前言

    2009-07-22 20:56:00
  • Oracle数据库游标使用大全

    2008-03-04 18:24:00
  • 微软证实最新的关键SQL Server漏洞

    2008-12-23 13:31:00
  • css中使用CLASS来设计网页布局

    2007-10-30 13:01:00
  • 2009年五一劳动节logo欣赏

    2009-05-02 18:26:00
  • ASP动态生成的javascript表单验证代码

    2008-10-13 20:11:00
  • asp中用insert into语句向数据库插入记录(添加信息)的方法

    2011-02-05 10:46:00
  • ASP JSON类文件的使用方法

    2011-04-30 16:39:00
  • 讲解SQL Server数据库的触发器安全隐患

    2009-01-13 14:01:00
  • 巧用Dreamweaver MX设计导航栏特效

    2009-07-10 13:17:00
  • 如何快捷地实现分页显示功能?

    2010-01-01 15:08:00
  • 常用SQL语句词典

    2008-08-03 17:19:00
  • 两个不太常用的 CSS Hack

    2008-06-27 12:49:00
  • Asp的上下午时间格式问题

    2009-04-13 16:06:00
  • asp之家 网络编程 m.aspxhome.com