我想分割一些整数来得到一个百分比。默认情况下,我得到一个整数结果,当然,所以我投到十进制。但我也希望结果只能在小数点右边有两个地方。更简洁的方法将整数除法转换为小数
--select (x - y)/y
select (82 - 56)/56 --0
select (82 - 56)/cast(56 as decimal(9, 2)) --0.4642857142
select cast(82 - 56 as decimal(9,2))/56 --0.464285
select cast((82 - 56)/56 as decimal(9,2)) --0.00
select cast(cast(82 - 56 as decimal)/56 as decimal(9,2)) --.46
所以我最终不得不同时抛出一个操作数和整个表达式以获得我想要的结果。有一个更好的方法吗?
注意我把等式放在顶部,表示我显然不使用硬编码的数字(即暗示我在数字不会有帮助的情况下放“.0”)。另外,我通常会将格式化方面留给报告软件,但这些内容会不时复制到Excel电子表格中,我不得不每次都手工格式化。
哪个'RDBMS'? – Quassnoi 2012-04-24 20:00:07
@Quassnoi糟糕,sql 2008 ...刚添加标签,谢谢。 – 2012-04-24 20:01:20
它绝对必须在SQL中完成,或者你能找回Java/C#/ PhP中的结果吗?这对于任何这些语言来说都很简单,实际上我认为你会因为小数点的大小而节省下载带宽。 – ControlAltDel 2012-04-24 20:05:10