文字列から数値への変換操作
以下の例は、数値文字列をキャノニック形式の数値に変換する場合に TO_NUMBER が実行する異なる操作を示しています。SQL コメントに示されている、返される結果は論理モードです。変換された数値の表示方法の詳細は、"変換された文字列の形式モード" を参照してください。
TO_NUMBER は、先頭のプラス符号またはマイナス符号を解決します。
SELECT TO_NUMBER('-+123 feet') -- -123
SELECT TO_NUMBER('+-+-123 feet') -- 123
また、TO_NUMBER は、指数記数法 ("E" または "e") を展開します。
SELECT TO_NUMBER('1e3') -- 1000
SELECT TO_NUMBER('1E-3') -- .001
TO_NUMBER は、非数値文字 (文字や数値グループ・セパレータなど) を検出すると変換を停止します。
SELECT TO_NUMBER('7dwarves') -- 7
文字列式の先頭文字が数値でない場合、または式が空文字列 ('') か -0 の場合、TO_NUMBER は 0 を返します。
SELECT TO_NUMBER('question3') -- 0
SELECT TO_NUMBER('') -- 0
SELECT TO_NUMBER('-0') -- 0
TO_NUMBER は、算術演算を解決しません。例えば、以下の文字列の場合、TO_NUMBER は文字 "+" で変換を停止し、2 を返します。
SELECT TO_NUMBER('2+4') -- 2
文字列式に NULL を指定すると、TO_NUMBER は NULL を返します。