如何在划分2个整数时获得TSQL中的百分比?

时间:2016-05-23 16:28:47

标签: sql-server tsql

我想把这个部门显示为百分比。

SELECT a * 100/b
FROM myTable
WHERE condition 

例如, a = 170 b = 288 a / b = 0.590277777778

我想返回59,02。我得到的只是59。如何获得这两个部分?

1 个答案:

答案 0 :(得分:4)

Sql Server只看到整数参数并返回整数结果。使两个第一个参数之一为numeric / decimal

select a * 100./b

select cast(cast(a as decimal(18,4)) * 100/b as decimal(18,2))

这无济于事:

select a/b*100.

由于操作的顺序,第一次操作(除法)仍然是整数。

要使用的测试用例

declare @a int=170,
        @b int=288;

select  cast(@a as decimal)*100/@b   --59.02777777777
      , @a*100./@b  --59.02777777777
      , cast (@a*100./@b as decimal(18,2)) --59.03