2016-08-25 11 views
2

タイプ値100.0をOracle SQLの100(小数点なし)に変換する必要があります。私を助けてもらえますか?私はregexp_substrを使用しました...しかし、下記の1つの状況では失敗します。小数点を持たないvarchar型の変数番号の変換

SELECT REGEXP_SUBSTR(0.1,'(\d*)') FROM DUAL;---it results in Null but i want zero(0). 

注: - OrcaleのSQL Developerの

+0

は、文字列であると想定されるREGEXP_SUBSTRの最初のパラメータではありませんか?あなたはフロートを提供したようです。 – Tryph

+1

'SELECT REGEXP_SUBSTR(" 0.1 "、 '^ \ d +')FROM DUAL;'を試すか、または 'CAST'を使用してfloatをvarcharに変換してください。 –

+1

varchar2に10進数以外のテキストが含まれていない場合は、正規表現なしでそれを実行できます。 'TO_CHAR(FLOOR(TO_NUMBER(" 0.1 ")))' – LukStorms

答えて

0

にあなたが整形機能を使用する必要がありますので、あなたは、表示されることを希望する形式で数値を表示したいです。私の意見では丸めの必要はありません - 下のクエリは、あなたが望むものをあなたに与えるはずです。

SELECT 
    TO_CHAR(TO_NUMBER('100.1'),'FM9999') as res 
FROM 
    dual 
; 

数値フォーマットの詳細はhereです。

関連する問題