使用上の注意 - 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

リレーショナル関数ARRAY_GT、ARRAY_GE、ARRAY_LT、ARRAY_LE、ARRAY_EQ、およびARRAY_NEの場合、ARRAYタイプでは2つの形式をサポートしています。

第1の形式では、左側と右側両方のオペランドが同じARRAYタイプの2つのインスタンスです。

リレーショナル演算が対になって、2つの引数内の一致する構成要素のペアそれぞれを1つずつ実行します。オプションの引数scope_referenceが定義されている場合、操作はその適用範囲内の構成要素についてのみ実行されます。scope_referenceの境界外にある構成要素はすべてNULLに設定されます。

結果は、入力配列引数と同じタイプのARRAYとなり、m=nであるDECIMAL(m,n)以外のすべての数値タイプについて、1 (true)、0 (false)、またはNULLの3つのうちいずれかの値が入ります。m=nであるDECIMAL(m,n)の場合、小数点の左側の桁は許されないことから、関数は1という値を格納できません。この場合、関数は.9[0]を返します。1を超える高レベルの精度の場合、右側は0が埋め込まれます。

第2の形式では、左側または右側のいずれか一方が、有効なTeradataデータ型を持つARRAYです。また、その他のオペランドは、左側のARRAYに対して定義されたものと同じデータ型の数値です。

リレーショナル演算は、数値引数をARRAY引数の各構成要素に適用することで実行します。オプションの引数scope_referenceが定義されている場合、操作はその適用範囲内の構成要素についてのみ実行されます。scope_referenceの境界外にある構成要素はすべてNULLに設定されます。

結果は、入力配列引数と同じタイプのARRAYとなり、m=nであるDECIMAL(m,n)以外のすべての数値タイプについて、1 (true)、0 (false)、またはNULLの3つのうちいずれかの値が入ります。m=nであるDECIMAL(m,n)の場合、小数点の左側の桁は許されないことから、関数は1という値を格納できません。この場合、関数は.9[0]を返します。1を超える高レベルの精度の場合、右側は0が埋め込まれます。右側がNULLと判断されると、NULLが返されます。

リレーショナル比較関数のどちらの形式でも、ARRAY引数内にNULL構成要素があると、結果のARRAYのその位置にはNULL構成要素が入ります。配列を呼び出す比較は、CREATE TYPE文内のオプションのDEFAULT NULL句の影響は受けません。ただし、DEFAULT NULL句を指定せずに作成された配列を比較するときにエラーになる確率は高まります。

ARRAY引数に初期化されていない状態にある構成要素が含まれている場合、エラーが返されます。適用範囲の参照を使用して、初期化されてない構成要素が含まれているARRAYの範囲の参照を回避するか、初期化されていない構成要素をNULLに設定します。これは、OEXTENDメソッドを使用して行なえます。OEXTENDを参照してください。