2016-04-25 59 views
0

例如,我輸入號碼,它會輸入格式號碼。如何在mysql中刪除多餘的零?

if I input 0010,it return 10; 
if I input 0.0200,it return 0.02; 
if I input 0.10,it return 0.1; 

我嘗試使用此代碼,但它不work.Can我定義的函數或存儲過程中封裝這個業務功能?

select rtrim(00.40) 
+0

你 「輸入」 是多少?那是什麼意思? 0010 *是* 10和0.0200 *是* 0.02。大多數GUI工具在選擇時顯示最簡單的數字版本,因此您可以準確獲取所需內容。例如:http://sqlfiddle.com/#!9/9eecb7d/56241。你會得到什麼?你總是可以用'FORMAT'將一個數字格式化爲一個字符串;看到這裏:http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_format –

+0

是的,我的意思是選擇號碼。 – flower

+0

使用'trim()+ 0',見下面;) – mitkosoft

回答

0

使用裝飾()功能與選項,請參閱docs

更新: 您可能要參考this post,給你更多的細節

0

TRIM() + 0能訣竅:

select trim(0010)+0, trim(0.0200)+0, trim(0.10)+0 from dual 

輸出:

+--------------+----------------+--------------+ 
| trim(0010)+0 | trim(0.0200)+0 | trim(0.10)+0 | 
+--------------+----------------+--------------+ 
|   10 |   0.02 |   0.1 | 
+--------------+----------------+--------------+ 
1 row in set 
+0

這究竟是如何更好比'SELECT 0010,0.0200,0.10'? –

+0

如果有空格(由於用戶輸入),輸出將會不同。別的,是的,沒有區別。 – mitkosoft

+0

你錯過了......你(和OP)正在使用***數字*** - 而不是字符串。你可以在數字周圍放置儘可能多的空白,你不會改變它。例如。 'SELECT 0010,0.0200,0.10'_注意:直到OP能夠弄清楚他/她想問什麼,問題不清楚,應該關閉。最好是重複的。你的回答(以及幾乎任何答案)只是增加了無意義。[ –