我想把这个部门显示为百分比。
SELECT a * 100/b
FROM myTable
WHERE condition
例如, a = 170 , b = 288 。 a / b = 0.590277777778
。
我想返回59,02
。我得到的只是59
。如何获得这两个部分?
答案 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