如果數字不是整數,並且沒有任何數字是整數,我試圖獲得一個格式化爲2位小數的數字。目前我使用下面的查詢如何獲得小數,如果數字不是在mysql中輪迴
SELECT round(SUM(number),2) as Numb FROM table
我得到這樣的數字1.00,我想它是1
如果數字不是整數,並且沒有任何數字是整數,我試圖獲得一個格式化爲2位小數的數字。目前我使用下面的查詢如何獲得小數,如果數字不是在mysql中輪迴
SELECT round(SUM(number),2) as Numb FROM table
我得到這樣的數字1.00,我想它是1
你將不得不使用與模量的情況。喜歡的東西:
select
case (number mod 1 > 0)
when true then round(number, 2)
else round(number, 0)
end
from Numb
結果:
select
case (number mod 1 > 0)
when true then round(number, 2)
else round(number,0)
end as num
from Numb;
+------+
| num |
+------+
| 2 |
| 1.01 |
| 5 |
| 3.01 |
| 4.25 |
+------+
5 rows in set (0.00 sec)
只有選擇返回只有一行 – 2011-05-04 16:34:44
如何如此?上面的查詢選擇Numb中的所有行。我做了一個小測試和多行結果 – sreimer 2011-05-04 17:24:58
這是我正在使用的查詢'SELECT case(SUM(WorkedHours)mod 1> 0)when true then round(SUM(WorkedHours),2)else round(SUM(WorkedHours) ,0)end AS TotalWorkedHours FROM timetrack.work_items w INNER JOIN timetrack.time_logs t on w.ID = t.IDWorkItem group by IDSottocommessa'and I get [TotalWorkedHours,46.19,10.00,30.00,25.00,12.00] – 2011-05-05 07:07:09
我見過這樣的昨天的問題,這讓我感到這些問題考慮不周 - 他們詢問如何做一些事情,在大多數情況下,你不應該這樣做。如果一個數字被存儲爲帶有小數分量的數字類型,那麼它的存儲方式可能是因爲對測量精度存在隱含的限制。顯示適當的小數位保留了該值的準確性的信號。最重要的是,如果您將此過程的輸出與產生整數的查詢進行比較,而不是這種查詢的結果,則會看起來很醜並且不一致。 – Hammerite 2011-05-04 16:24:38
@Hammerite我不同意。我正在研究這個,我的使用案例是採購系統中的「金額」欄。我想要例如能夠購買5件東西,或2.4米的東西。購買商品時,小數點是完全不必要的。 – 2012-10-17 14:11:50