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
投稿

猜你喜欢

  • Python3远程监控程序的实现方法

    2021-07-15 15:03:50
  • 基于php无限分类的深入理解

    2023-11-15 04:07:39
  • 为JavaScript程序添加客户端不可见的注释

    2008-05-31 08:02:00
  • 分享最新Sublime Text4 Build 4107注册码(密钥)汉化及完美永久破解方法

    2022-12-17 10:24:53
  • Python常见的pandas用法demo示例

    2022-09-16 12:55:04
  • 如何通过Java监听MySQL数据的变化

    2024-01-26 16:05:22
  • ASP 内建六大对象简介

    2009-06-04 18:08:00
  • Python 通过爬虫实现GitHub网页的模拟登录的示例代码

    2022-04-27 00:26:39
  • js表单检测数字

    2007-10-12 13:52:00
  • MySQL 数据类型和建库策略

    2024-01-20 12:32:40
  • django rest framework vue 实现用户登录详解

    2022-04-15 00:53:52
  • php文件缓存类用法实例分析

    2023-08-17 16:26:44
  • 使用Keras构造简单的CNN网络实例

    2023-08-23 04:38:21
  • Python多进程multiprocessing、进程池用法实例分析

    2022-05-20 00:01:29
  • python实现基于信息增益的决策树归纳

    2022-05-20 14:22:47
  • mysql事务管理操作详解

    2024-01-20 10:35:29
  • .NET 6中System.Text.Json的七个特性

    2024-05-02 17:20:02
  • 使用python编写批量卸载手机中安装的android应用脚本

    2022-07-04 19:41:27
  • MySQL 数据查重、去重的实现语句

    2024-01-25 10:46:34
  • Flask框架使用DBUtils模块连接数据库操作示例

    2024-01-26 11:46:10
  • asp之家 网络编程 m.aspxhome.com