Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

TO_NUMBER (SQL)

文字列式を NUMBER データ型の値に変換する文字列関数です。

Synopsis

TO_NUMBER(stringExpression)  TONUMBER(stringExpression)

概要

  • TO_NUMBER(stringExpression) は、入力文字列式をデータ型 NUMERIC のキャノニック形式の数値に変換します。入力文字列式がデータ型 DOUBLE の場合、TO_NUMBER はデータ型 DOUBLE の数値を返します。以下の表に示されていないその他すべてのタイプは、stringExpression タイプを返します。

    stringExpression タイプ 返されるタイプ
    VARCHAR、VARBINARY、TIME NUMERIC
    BIT TINYINT
    DATE INTEGER
    TIMESTAMP POSIXTIME BIGINT

    以下のクエリは、特定の通りの番地を数値の昇順で返します。ORDER BY Home_Street を指定して番地を変換せずに、数値にも変換しない場合、番地は文字列の照合順 (1、10、100、2、20、200 など) に従います。

    SELECT Name,Home_Street FROM Sample.Person WHERE Home_Street LIKE '%Oakhurst%'
    ORDER BY TO_NUMBER(Home_Street)

    例 :

  • TONUMBER(stringExpression) は、TO_NUMBER(stringExpression) と同等です。

引数

stringExpression

変換される文字列式。式には、列の名前、文字列リテラル、または他の関数の結果を指定できます。基本となるデータ型は CHAR または VARCHAR2 です。

文字列から数値への変換操作

以下の例は、数値文字列をキャノニック形式の数値に変換する場合に 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 を返します。

変換された文字列の形式モード

返されるクエリ結果の数値形式は、論理モード、ODBC モード、表示モードのいずれを使用するかによって異なる場合があります。

文字列式が DOUBLE でない限り、TO_NUMBER 関数は NUMERIC 型の数値を返します。NUMERIC データ型の既定の小数桁数は 2 です。したがって、クエリを表示モードで実行すると、InterSystems IRIS は結果セットを小数点以下 2 桁で表示します。

SELECT TO_NUMBER('-15 degrees F') -- Display Mode: -15.00

それ以下の小数桁数は 2 桁に丸められます。

SELECT TO_NUMBER('-15.835 degrees F') -- Display Mode: -15.84

末尾のゼロは小数点以下 2 桁に解決されます。

SELECT TO_NUMBER('-15.60000 degrees F') -- Display Mode: -15.60

xDBC を介して使用する場合も、TO_NUMBER は、小数桁数 2 桁 の NUMERIC 型として返します。論理モードまたは ODBC モードでは、返される値はキャノニック形式の数値です。また、小数桁数は使用されず、末尾のゼロは省略されます。

SELECT TO_NUMBER('-15 degrees F') -- Logical/ODBC Mode: -15
SELECT TO_NUMBER('-15.835 degrees F') -- Logical/ODBC Mode: -15.835
SELECT TO_NUMBER('-15.60000 degrees F') -- Logical/ODBC Mode: -15.6

入力文字列式がデータ型 DOUBLE の場合、TO_NUMBER はデータ型 DOUBLE の値を返します。すべての形式モードで、変換後の数値の全桁が表示されます。

SELECT TO_NUMBER(CAST('-15.6 degrees F' AS DOUBLE)) -- -15.599999999999999644

詳細

関連項目

FeedbackOpens in a new tab