SQLServer中进行sql除法运算

摘要:
小數點後顯示4位小數。----------------------------------------------------------------CONVERT+'%'备注:CAST函数用来类型转换ROUND函数用来控制小数位数

转自:http://blog.sina.com.cn/s/blog_8020e41101019k7t.html

SELECT field1/field2 FROM TB;

当 field1的数值 > field2的数值时,除法得出的结果是<1的,即0.xxxxxx

这个时候在DB2的环境下SELECT出来的值是0

解決方法:

先把field1转换成DOUBLE类型的,这样计算出来的就会得出小数点了,会显示出0.xxxx

SELECT CAST(field1 AS FLOAT)/field2 FROM TB;

ps.網上搜的資料,寫的是double,但在SQL Server2008中一直報錯,改成FLOAT就沒問題了。

小數點後顯示4位小數。

可以進一步四舍五入,保留两位小数点

SELECT ROUND(CAST(field1 AS DOUBLE)/field2, 2) FROM TB;

不過因為我要用到百分比,就改成了

SELECT CAST(field1 AS FLOAT)/field2 * 100 FROM TB;

然後再頁面顯示時再加上“%”

如果数据列的值为NULL,将其设置为0,那么sql就要这么写

SELECT ROUND(COALESCE(CAST(field1 AS DOUBLE), 0)/field2, 2) FROM TB;

COALESCE这个函数系统的用法如下:

a. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,”)把NULL转换成”;

b. 输入类型为整型,且允许为空的,可以使用COALESCE(inputParameter,0),把空转换成0;

c. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,”)把NULL转换成”,然后判断函数返回值是否为”;

d. 输入类型为整型,且是非空的,不需要使用COALESCE函数,直接使用IS NULL进行非空判断。

----------------------------------------------------------------

CONVERT(
                            VARCHAR(6),
                            ROUND(
                                     COALESCE(CAST(((AllCount - CompleteCount) * 100) AS DOUBLE PRECISION), 0)
                                     /AllCount,
                                     2)
                        ) + '%'

备注:

CAST函数用来类型转换

ROUND函数用来控制小数位数

免责声明:文章转载自《SQLServer中进行sql除法运算》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇kotlin面向对象之抽象类、继承、多态linux 常见音乐、视频播放器简介下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

其他查询

1、SELECT INTO 从一个表中选取数据,然后把数据插入另一个表中。常用于创建表的备份或者用于对记录进行存档。 语法: SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename IN 子句可用于向另一个数据库中拷贝表。 1)备份表信息 SEL...

【SQL server初级】数据库性能优化三:程序操作优化

  数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分   数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常多的程序性能的,下面列出常用错误习惯,并且提出相应的解决方案     一、操作符优化   1. IN、NOT IN 操作符   IN和EXIS...

ThinkPHP的连贯操作方法中field方法

1 ThinkPHP的连贯操作方法中field方法有很多的使用技巧,field方法主要目的是标识要返回或者操作的字段,下面详细道来。 2 3 1、用于查询 4 在查询操作中field方法是使用最频繁的。 5 6 $Model->field('id,title,content')->select(); 7 这里使用field方法...

SQL 删除前100条 with as

with cte as(select top 50* from tableName)delete from cte WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,...

mysql查询特定时间段内的数据

例如查询某张表2019年5月,06点-09点间的数据。select date from <表名> where month(列名)='5' AND extract(hour_minute from <列名>) BETWEEN '600' AND '859' (注意mysql between and 是包含两边的) MySQL日期时间E...

ant-design-vue——a-select下拉框值为空字串时,高度偏窄问题

问题页面(红框处即为值为空字符串的数据): 改后: 页面: ···<a-select v-model="formData.urgentLevel" dropdownClassName="selectOption"> <a-select-option v-for="(item,index) in URGENTLEVEL...