結果のタイプ - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

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/tpt1555966086716.ditamap
dita:ditavalPath
ja-JP/tpt1555966086716.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

DECODEは、関数に渡されたresultパラメータに関連付けられたデータ型によって戻り値のデータ型が異なるスカラー関数です。

  • resultまたはdefaultが数値タイプの場合、DECODEは最も高い優先順位を持つ引数がどれかを判定し、他のresultまたはdefault引数をそのデータ型に変換して、そのデータ型を返します。

    そのデータ型がDECIMAL/NUMERICであり、resultまたはdefaultの引数の精度とスケールが異なる場合、戻りタイプの精度とスケールは最大精度になるように設定されます。

    例えば、result/default引数がDECIMAL(6,3)、DECIMAL(7,4)、およびDECIMAL(8,7)の場合、精度の低下を避けるために、戻りタイプは小数点の左が3桁、右が7桁必要になります。この場合、返されるデータ型はDECIMAL(10,7)に設定されます。

    最大精度を維持できない場合、データはDBS制御のRoundHalfWayMagUpフィールドに基づいて丸められます。例えば、resultおよびdefault引数がDECIMAL(32, 8)とDECIMAL(30, 28)の場合、戻りタイプはDECIMAL(38,14)になります。これにより、DECIMAL(32, 8)に必要な小数点の左側の24桁と、小数点の右側の14桁を用意します。DECIMAL(30,28)のresultまたはdefault引数が最大値だとすると、その値は小数点から右側の14桁目で丸められます。

    データ型が固定小数点数のNUMBERで精度が38以下の場合、戻りタイプの精度とスケールは、DECIMAL/NUMERICと同じメソッドを使用して計算されます。ただし、精度が38より大きい場合は、精度の低下を避けるために戻りタイプをNUMBER(*)に変更します。データ型が浮動小数点のNUMBERの場合、戻りタイプはNUMBER(*)になります。

  • resultまたはdefaultが文字データ型の場合、この関数は最初のresult引数の文字セットでVARCHARを返します。