我想分割一些整數來得到一個百分比。默認情況下,我得到一個整數結果,當然,所以我投到十進制。但我也希望結果只能在小數點右邊有兩個地方。更簡潔的方法將整數除法轉換爲小數
--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