2016-04-15 50 views
-1

我有這樣如何截斷小數點在mysql中列

Percentage 
0.00 
0.00 
10.10 
0.90 
0.00 

表我想這是這樣

Percentage 
0 
0 
10.10 
0.90 
0 

,這是我的查詢

SELECT discount_percentage - TRUNCATE(discount_percentage, 0), IF(discount_percentage - TRUNCATE(discount_percentage, 0) = 0.00, TRUNCATE(discount_percentage, 0), discount_percentage) AS percentage FROM `order` WHERE 1 

而且我的結果是:

 discount_percentage - TRUNCATE(discount_percentage, 0) percentage 
                 0.00  0.00 
                 0.00  0.00 
                 0.99  10.99 
                 0.00  0.00 

我的百分比字段的類型爲float

如果0.00意味着我想要0也如果10.00意味着10和10.99意味着10.99。如有人知道救我出這

+0

最新的數據類型的列百分比? – cableload

+0

float是我的類型 – Sivabalan

回答

-1

SELECT百分比,SUM(CASE WHEN百分比> = 0,則比例ELSE 0 END)作爲DISCOUNT_PERCENTAGE FROM #TEST GROUP BY個

它爲我工作,但一件事你需要檢查。這將是更好的事情可做GROUP BY一些列然後百分比(也許id列?)

+0

好的10.10呢?這不是我想要的解決方案 – Sivabalan

0

嘗試this..I認爲這是你在找什麼..

select 
case when v regexp '(.)(\.00$)' then truncate(v,0) else v end as Percentage 
from YourTable; 
+0

它不起作用。我不知道錯誤是什麼。即使查詢邏輯也正確 – Sivabalan

+0

你得到什麼輸出?你能給個例子嗎?你還沒有提到你的列百分比的數據類型。 – cableload

+0

我得到10.00的輸出爲10.00,但我想爲12.11的10我想要12.11。這對你來說很清楚 – Sivabalan