sql 自定義百分比轉換小數函數

2023-11-16

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql 自定義百分比轉換小數函數 的相关文章

随机推荐

  • tensorflow2.1.0安装

    原来一直用1 x的tf 最近安装2 初始源error无法安装 下载本地包后 换清华源之类的 channels defaults show channel urls true default channels https mirrors tu
  • 机器学习(一)

    文章目录 人工智能 人工智能的诞生 人工智能的发展历程 人工智能与机器学习的关系 机器学习 机器学习的发展历程 讨论 机器学习的必要性 机器学习的定义 机器学习的三要素 机器学习的基本概念 作业 人工智能 人工智能的诞生 人工智能诞生于一群
  • Spring Boot项目中使用 TrueLicense 生成和验证License(服务器许可)

    一 简介 License 即版权许可证 一般用于收费软件给付费用户提供的访问许可证明 根据应用部署位置的不同 一般可以分为以下两种情况讨论 应用部署在开发者自己的云服务器上 这种情况下用户通过账号登录的形式远程访问 因此只需要在账号登录的时
  • python机器学习相关的操作 numpy,GridSearchCV(网格搜索)等

    numpy切片操作 视频讲解 numpy 简单入门 GridSearchCV的简单使用视频讲解 SVM参数优化 metrics中的precision score recall score accuracy score import nump
  • C语言中的system有什么作用,C语言中system函数的使用

    System 是c语言中为了调用windows系统命令来设置的 它包含在头文件 include中 具体的使用可以在system help 后发现帮助命令 命令如下 有关某个命令的详细信息 请键入 HELP 命令名 ASSOC 显示或修改文件
  • python语言通过neo4j构建知识图谱

    用python语言通过neo4j构建知识图谱 安装neo4j社区版 启动neo4j neo4j语法 python编写代码 结果 注意 可能遇到的问题 安装neo4j社区版 下载neo4j 安装相应版本jdk 例 jdk15 neo4j4 2
  • CentOS自动挂载光驱

    今天在CentOs下安装测试数据库 光驱居然找不到了 以前都是自动就能找到的 服务器上也是CentOs 开发库也在CentOs 没出现过这个问题 虽然知道linux一直都有这个问题 改用手动挂载 报以下错误 mount can t find
  • 用宏定义字节对齐

    有时候我们需要对一个数字节对齐 实例代码 include
  • 左神算法进阶班4_3异或和为0划分最多数组

    题目 定义数组的异或和的概念 数组中所有的数异或起来 得到的结果叫做数组的异或和 比如数组 3 2 1 的异或和是 3 2 1 0 给定一个数组arr 你可以任意把arr分成很多不相容的子数组 你的目的是 分出来的子数组中 异或和为0的子数
  • Nikolaj Buhl : Segment Anything 模型 (SAM) 解释

    文章目录 Meta 的人工智能和计算机视觉简史 计算机视觉的进展 卷积神经网络 CNN 生成对抗网络 GAN 迁移学习和预训练模型 基础模型的成长 大规模语言模型 迁移学习 零样本和少样本学习 多模态学习 道德考量和安全 将 Segment
  • 德鲁伊数据库连接池

    文章目录 前言 什么是德鲁伊 为什么要使用德鲁伊 如何在 Java 项目中使用德鲁伊连接池 德鲁伊的优缺点 总结 前言 德鲁伊 Druid 是一个非常流行的数据库连接池和性能优化工具 它用于管理数据库连接 监控数据库性能 提供连接池统计等功
  • Json的学习例子

    using System using LitJson using System Collections namespace JSON
  • pyinstaller 打包应用报错闪退

    请看到最后 解决方案一 用录屏软件录个视频 然后用播放软件打开逐帧查看 找到报错原因 一般是某个包导入错误 重新安装下对应的包 忒麻烦 借鉴大佬的博客 https blog csdn net s740556472 article detai
  • 最后一次实验

    拓扑图 实验要求 拓扑分析 先分ip 然后分vlan然后配ip 配路由 设备配置和配置解析 sw1 sw2 r1 r2 r3 实验结果
  • 脑电EEG常用的特征

    最近学习有关脑电的一些基础知识 基于深度学习对脑电信号进行分类时 首先需要对脑电信号进行预处理 滤波等 这时一般不能将其作为数据进行学习 更常见的是提取脑电信号的特征 然后再用深度学习发掘特征与不同情绪的关联 脑电信号常见的特征有 时域中
  • CLR 完全介绍

    From http msdn microsoft com zh cn magazine cc164193 aspx http msdn microsoft com en us magazine cc164193 aspx Code down
  • 刷脸支付服务商提供极致的用户体验

    刷脸支付正在攻占人们生活中的各个场景 在北京 可能依靠刷脸就可乘坐地铁了 据报道 北京地铁部门已开始测试面部识别技术 目前正在机场线内部测试中 一旦验证成功 将会在全路网铺开 最近一个月 垃圾分类成了热点 全国开始进入生活垃圾强制分类新时代
  • Myabtis_Plus

    一 自动填充 准备工作 添加新的字段create time update time 在实体类中需要进行自动填充的字段添加注解 TableField fill FieldFill INSERT private Date createTime
  • Unity 获取Animtor Controller 动画控制器的参数,层级

    获取Animator中的Parameters参数 Trigger Int Float等类型 UnityAPI Animator parameters 获取所有参数 获取Layer层 UnityAPI Animator layerCount
  • 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 va