T-SQL 小数点转换百分数


-- =============================================
-- Author: <Author,,CC>
-- Create date: <Create Date,, 2014-05-26 10:43:07.080>
-- Description: <Description,,小数点转换为百分数,并对第3位进行4舍5入>
-- Environment: <Version,, Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64))>
-- =============================================

/*------------------------------------------------------------------------
2种思路的计算方法:
1种是直接decimal 类型可以设置精度为4,小数位为2,这样会自动的把小数为3的数字进行四舍五入掉
2种是就是我们对小数点位数进行加法计算来满足达到四舍五入的条件(即变量+0.005)这个时候可以使用int类型
以下为实现方法:
--------------------------------------------------------------------------*/

------------------------- 方法1 ---------------------------------------
declare @i int = 3
declare @it int = 7

select (@i*1.0)/@it [小数点]
-- 因为数据类型为int所以,需要*1.0来进行转换,如果直接是带有小数点位数可以跳过这一步

select ((@i*1.0)/@it)*100 [分子]
--把小数点转换为所需要的百分比分子值需要乘以100

select CAST( ((@i*1.0)/@it)*100 as decimal(5,0)) [4舍5入之后2位小数点的百分数]
--保留2位小数点,也是对小数位进行4舍5入的一步

select LTRIM(CAST( ((@i*1.0)/@it)*100 as decimal(5,0)))+‘%‘ [百分数]
-- 加%号以合成百分比,也可以使用下面的方法来进行转换因为另外的一种方法,只能使用转换varchar类型

select CAST(CAST( ((@i*1.0)/@it)*100 as decimal(5,0)) as varchar(10))+ ‘%‘ [百分数]

------------------------- 方法2 -----------------------------------------
declare @i int = 3
declare @it int = 7

select (@i*1.0)/@it [小数点]
-- 因为数据类型为int所以,需要*1.0来进行转换,如果直接是带有小数点位数可以跳过这一步

select ((@i*1.0)/@it)+0.005 [4舍5入]
-- 对得到的结果进行+0.005以取得第三位小数点4四5入的结果

select (((@i*1.0)/@it)+0.005)*100 [带小数点的分子]
-- *100 把小数点转换为百分比的分子

select CAST((((@i*1.0)/@it)+0.005)*100 as int) [分子]
-- 把第2位小数点之后的数字进行截取,转换为整数

select CAST(CAST((((@i*1.0)/@it)+0.005)*100 as int) as varchar(10)) + ‘%‘ [百分数]
--把整型转换为字符型的数据类型,加上百分号

以上方法只是示例求得百分数,实际中可能需要根据数据类型和需求来进行微调

T-SQL 小数点转换百分数,布布扣,bubuko.com

时间: 2024-10-22 14:07:48

T-SQL 小数点转换百分数的相关文章

SQL行列转换6种方法

在进行报表开发时,很多时候会遇到行列转换操作,很对开发人员针对于SQL级别行列转换操作一直不甚理解,今天正好抽空对其进行了一些简单的总结.这里主要列举3种可以实现SQL行列转换的方法,包括通用SQL解法以及Oracle支持解法. 一.测试数据 测试表依旧采用Oracle经典的scott模式下的dept表和emp表,结构如下: DEPT: create table DEPT ( DEPTNO NUMBER(2) not null, DNAME VARCHAR2(14), LOC VARCHAR2(

PowerDesigner 逆向工程 从SQL文件转换成PDM 从PDM转成CDM

从SQL文件逆向工程到PDM: ①选择file -> Reverse Engineer - > Database ②在General选项卡中选择MySQL数据库,点击确定. ③using script file 选择你的sql文件,最后选择确定. 从PDM转成CDM: ①选择工具 -> General CDM (Ctrl + Shift + C) ②点击确定 PowerDesigner 逆向工程 从SQL文件转换成PDM 从PDM转成CDM,布布扣,bubuko.com

atitit。mssql sql server 转换mysql 及 分页sql ast的搭建

atitit.mssql sql server 转换mysql  及 分页sql ast的搭建 1. 主要的的转换::函数的转换,分页的转换 1 2. 思路::mssql sql >>ast>>mysql 1 3. sql主要的如下::: 1 4. Mssql2MysqlConvertor (proj:wechatAdm4propt 2 1. 主要的的转换::函数的转换,分页的转换 2. 思路::mssql sql >>ast>>mysql 3. sql主要

linq,sql,lambda转换工具(推荐新手,初学者多多使用)

http://files.cnblogs.com/CielWater/Linqer.rar Linqer用于将sql语句转换为linq语句(暂不支持多表连接查询) http://files.cnblogs.com/CielWater/LINQPad4.zip LinqPad用于将linq语句转换为sql.lambda语句 linq,sql,lambda转换工具(推荐新手,初学者多多使用),布布扣,bubuko.com

怎么将oracle的sql文件转换成mysql的sql文件

将sql文件导入PowerDesigner中的方法(将oracle sql文件转换成mysql) 将xxxxxx.sql文件的数据库结构导入powerdesigner 的方法 步骤如下: 第一步:将要导入的库的所有表的表结构(不要表数据,只要表结构)导出成一个.sql文件. 第二步:在powerdesinger里找到 File >> Reverse Engineer >> Database ,如下图 图一,选择“share the DBMS definition”然后点击确定.注意

SQL 语句转换格式函数Cast、Convert

SQL 语句转换格式函数Cast.Convert CAST和CONVERT都经常被使用.特别提取出来作为一篇文章,方便查找. CAST.CONVERT都可以执行数据类型转换.在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能. 既然CONVERT包括了CAST的所有功能,而且CONVERT还能进行日期转换,那么为什么需要使用CAST呢?实际上,这是为了ANSI/ISO兼容.CAST是ANSI兼容的,而CONVERT则不是. 语法: CA

数据库如何从SQL server转换到SQLite

我之前用的是SQL server数据库,但是客户那里觉得安装这个大的数据库比较卡,说是导致蓝屏了,硬往SQL server上赖,没有办法客户是上帝么,给他换个小点的数据库吧!考虑acess,不行这个还是得安装客户端,必须找一个免安装的.最后终于找到了SQLite,不用安装客户端,只需要一个文件就行,在本地新建一个文本文件,改后缀名为.db,用SQLite studio软件打开这个.db文件.但是我之前数据是用SQL server做的,这就需要把数据从SQL server转换成SQLite, 这是

PowerDesigner之CDM、PDM、SQL之间转换

前段时间用了下PowerDesigner做了一些辅助工作.在此特地小结一下: 有关CDM.PDM.SQL之间转换以及不同数据库之间库表Sql的移植,首先要了解的是它们各自的用途.这里就简单的描述一下,不做详细的解释了. CDM:概念数据模型.CDM就是以其自身方式来描述E-R图.它不考虑物理实现的细节,只表示数据库的整体逻辑结构,独立于任何软件和数据存储结构. PDM:物理数据模型.考虑了数据库的物理实现,包括软件和数据存储结构,即:PDM与具体的数据库有关. 下面做了个简单的例子,简述了CDM

sql 时间转换格式 convert(varchar(10),字段名,转换格式)

convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121)CONVERT为日期转换函数,一般就是在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到的函数的3个参数,第1个参数为,转换后的大小,第2个为转换日期的字段或函数,第3个为转换的格式. 具体如下:0 | 0 or 100 | mon dd yyyy hh:miAM(或P