数値リテラル - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データ タイプおよびリテラル

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/zsn1556242031050.ditamap
dita:ditavalPath
ja-JP/zsn1556242031050.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

定義

数値リテラルは、次の文字で構成される1~40文字の文字列です。
  • 正符号(+)
  • 負符号(-)
  • 数字(0~9)
  • 小数点(.)

数値リテラルは、数値定数とも呼ばれます。

Teradata Databaseでは、整数値を表わす形式として数値リテラルの16進数形式もサポートされています。詳細は、16進整数リテラルを参照してください。

数値リテラルのタイプ

数値リテラルには、次の3種類があります。

例: 有効な数値リテラル

タイプ
BYTEINT 127 -36 -128
SMALLINT 32767 -12000 -32768
INTEGER 32768 -60400 2147483647
DECIMAL 0.0 -23554367273149967931。 2147483650
FLOATING POINT 1E1 1.4E6 18E-3

例: 無効な数値リテラル

無効なリテラル 無効である理由
123456789012345678901234567890123456789 38桁を超えるため。
$20,000.00 ドル記号とカンマが使われているため。
-38.7E2945 "E"の後に4桁あるため。
数値リテラルで有効な構成要素のルールについては、次の項を参照してください。

数値リテラルのデータ型の判別

数値リテラルのデータ型は、リテラル値の範囲によって判別されます。使用されるタイプは、値を収容できる最小のものです。

例えば、数値リテラル127のデータ型はBYTEINTになります。これが、値127に収まる最小のタイプだからです。

10進数リテラルの場合、桁数の合計数で精度が決まり、小数点の右側の桁数で位取りが決まります。

項目 参照先
整数リテラルの値の範囲 整数リテラル
10進数リテラルの位取りと精度の決定 10進数リテラル

数値リテラルの暗黙変換

実行する演算の種類、または値を格納する列のタイプによっては、数値リテラル定数の数値データ型がSQLによってあるものから別のものに変換されることがあります。

リテラルが、それに必要なタイプの範囲から外れている場合は、変換中にエラーが報告されます。

数値から数値へのデータ型の変換の詳細は、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。

文字列から数値リテラルへの変換

文字データには、数値と解釈するのが順当な文字列(例えば15)が入っていることがあります。そのような場合に、文字列から数値への変換を必要とするコンテキストであれば、そのつどTeradata Databaseによって変換が試みられます。その文字列が有効な数値を表わしていないと、エラーが出されます。

文字の列の値を数値の列の値と比較する必要がある場合は、比較の前に、その文字データと数値データがFLOATに変換されます。これにより、データへのアクセス中に変換処理が繰り返し行なわれる可能性があることに注意する必要があります。

数値データが定義されていて、文字の列内に文字列として格納されている場合に、文字の列を数値リテラルと比較するために選択操作で全件検索を行なうと、テーブルのすべての行で文字の列が数値に変換されます。

文字から数値へのデータ型の変換の詳細は、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。