2016-04-25 11 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' _Side note:OPが彼に聞きたいことが分かるまで、質問は不明で、閉じなければなりません。最高でそれは複製です。 _ –

0

はこのよう

SELECT TRIM(TRAILING '0' FROM Youvalue) 
FROM ... 

EXを試してみてください。

SELECT TRIM(TRAILING '0' FROM '0.0200') 
    FROM dual 

あなた "入力" 番号をこのリンクhttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_trim

+0

'選択トリム(0010から最後まで '0')は、1または001(シングルクォートを使用する場合)を返しますが、10は返しません。 – mitkosoft

+0

@mitkosoftがそれをチェックします –

+0

浮動小数点数はyesですが、0010の場合はLEADINGオプションを使用する必要があります – mitkosoft

関連する問題