DECIMALの結果のデータ型 - Teradata Database - Teradata Vantage NewSQL Engine - DECIMALの結果のデータ型。

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

DECIMALオペランドが関与するバイナリ算術演算の結果のデータ型は、次のようになります。

左のオペランド 右のオペランド 使用する演算子 結果のデータ型
DATE DECIMAL(k,j) * / MOD DECIMAL(p,j)

DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。

BYTEINT

SMALLINT

INTEGER

BIGINT

* / + - MOD DECIMAL(p,j)
DECIMAL(m,n) BYTEINT

SMALLINT

INTEGER

BIGINT

+ - * DECIMAL(p,n)
DATE * DECIMAL(p,n)

DATEのこれらの演算はエラーを報告しませんが、結果は、通常意味がありません。

この場合、pの値、つまり小数結果の桁数は、以下によって異なります。
  • DBSControlでMaxDecimalに指定した値。

    DBSControlとMaxDecimalの詳細は、<Teradata Vantage™ - データベース ユーティリティ、B035-1102>の「DBS制御ユーティリティ」を参照してください。

  • 小数オペランドの桁数。ただし、演算子の右のDECIMAL(k,j)オペランドの場合は桁数はk、演算子の左のDECIMAL(m,n)オペランドの場合は桁数はm
MaxDecimalの値 小数オペランドの桁数 p
0または15 ≤ 15 15
> 15および≤18 18
> 18 38
18 ≤ 18 18
> 18 38
38 任意の値 38
左のオペランド 右のオペランド 使用する演算子 結果のデータ型
DECIMAL(m,n) DECIMAL(k,j) + - DECIMAL(min(p,(1+max(n,j)+max(m -n,k-j))),max(n,j))
* DECIMAL(min(p,m +k),(n +j))
/ MOD DECIMAL(p,max(n,j))

この場合、DBSControl内のMaxDecimalに指定した値と、DECIMAL(m,n)オペランドおよびDECIMAL(k,j)オペランドの桁数によって、小数結果のデータ型の定義におけるpの値は異なります。

MaxDecimalの値 条件 p
0または15 mおよびk ≤ 15 15
(mまたはk > 15)と(mおよびk ≤18) 18
mまたはk > 18 38
18 mおよびk ≤ 18 18
mまたはk > 18 38
38 mおよびk = 任意の値 38