定義
- 正符号(+)
- 負符号(-)
- 数字(0~9)
- 小数点(.)
数値リテラルは、数値定数とも呼ばれます。
例: 有効な数値リテラル
タイプ | 例 | ||
---|---|---|---|
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進数リテラルの場合、桁数の合計数で精度が決まり、小数点の右側の桁数で位取りが決まります。
数値リテラルの暗黙変換
実行する演算の種類、または値を格納する列のタイプによっては、数値リテラル定数の数値データ型がSQLによってあるものから別のものに変換されることがあります。
リテラルが、それに必要なタイプの範囲から外れている場合は、変換中にエラーが報告されます。
数値から数値へのデータ型の変換の詳細は、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。
文字列から数値リテラルへの変換
文字データには、数値と解釈するのが順当な文字列(例えば15)が入っていることがあります。そのような場合に、文字列から数値への変換を必要とするコンテキストであれば、そのつどTeradata Databaseによって変換が試みられます。その文字列が有効な数値を表わしていないと、エラーが出されます。
文字の列の値を数値の列の値と比較する必要がある場合は、比較の前に、その文字データと数値データがFLOATに変換されます。これにより、データへのアクセス中に変換処理が繰り返し行なわれる可能性があることに注意する必要があります。
数値データが定義されていて、文字の列内に文字列として格納されている場合に、文字の列を数値リテラルと比較するために選択操作で全件検索を行なうと、テーブルのすべての行で文字の列が数値に変換されます。
文字から数値へのデータ型の変換の詳細は、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。