我想以百分比顯示此分部。如何在除以2的整數時在TSQL中獲得百分比?
SELECT a * 100/b
FROM myTable
WHERE condition
在此,例如,一個= 170,B = 288。 a/b = 0.590277777778
。
我想返回59,02
。我得到的只是59
。如何獲得這兩個部分?
我想以百分比顯示此分部。如何在除以2的整數時在TSQL中獲得百分比?
SELECT a * 100/b
FROM myTable
WHERE condition
在此,例如,一個= 170,B = 288。 a/b = 0.590277777778
。
我想返回59,02
。我得到的只是59
。如何獲得這兩個部分?
Sql Server只能看到整型參數並返回整型結果。使兩個第一參數數字/十進制
select a * 100./b
或
select cast(cast(a as decimal(18,4)) * 100/b as decimal(18,2))
一個這不會幫助:
select a/b*100.
,因爲操作的順序,第一opeation(部門)仍然是整數。
測試用例
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
播放介紹一個小數,例如'選擇170 * 100.0/288'來避免你看到的整數運算。 –
'100.0'正在返回'59.0277777777779' – Richard77
是的。如果你想要2dp'select cast(170 * 100.0/288作爲十進制(5,2))',或者如果你想把值作爲一個字符串使用'str()' –