TABLE ( function_name ( [ expression [,...] ] ) )
[ RETURNS { [ database_name.] table_name | ( column_spec [,...] ) } ]
[ LOCAL ORDER BY local_order_by_spec [,...] | HASH BY column_name [,...] ]
[AS] derived_table_name [ ( column_name [,...] ) ]
構文要素
- function_name
- ユーザー定義テーブル関数の名前。
- expression
- 有効なSQL式。
- expressionでFROM句内のテーブルまたはサブクエリーの列が参照されている場合、そのテーブルまたはサブクエリーはTABLEオプションより前に指定されていなければなりません。
- [ database_name.] table_name
- テーブルとそのテーブルを格納しているデータベース(現在のデータベースと異なる場合)の名前。ここにテーブル関数の動的結果行によって処理された行が挿入されます。
- column_spec
column_name data_type
- local_order_by_spec
column_name [ ASC | DESC ] [ NULLS { FIRST | LAST } ]
- column_name
- HASH BY句の中。
- テーブル関数への入力に備えて、AMP全体の行をハッシュします。
- HASH BYは、ANSI SQL:2011規格に対するTeradata拡張機能です。
- HASH BY句は、結果がテーブル関数の入力になる文にのみ指定できます。
- HASH BYは、FROM句の一部として指定する必要があります。FROM句を参照してください。
- HASH BY句への入力の範囲は、以下のものに制限されます。
- 派生テーブル、ビュー、集合操作を指定するWITH句オブジェクトに対してHASH BY句は指定できません。
- 文ごとに指定できるHASH BY句は1つのみです。
- HASH BY句は、それ自体で指定するか、またはLOCAL ORDER BY句とともに指定できます。両方を指定すると、LOCAL ORDER BY句よりHASH BY句が優先されます。
- 複数のHASH BY句を含む複数の入力テーブル演算子を使用する場合は、次の制限が適用されます。
- すべての列に同じ数のパーティション属性が必要です。
- 対応する属性は、暗黙にキャストできるように、同じ型であるか、または互換性がある型にする必要があります。
- HASH BY入力とともにLOCAL ORDER BY句を指定する場合は、次のことが必要です。
- すべてのON句に同じ数のLOCAL ORDER BY列が必要です。
- 列のデータ型は、同じ型であるか、または暗黙のキャストを使用して一致させる必要があります。
- derived_table_name
- SELECT文の他の句の中で参照できる一時派生テーブルの名前。
- 派生テーブルの前にはASを指定することもできます(オプション)。
- column_name
- derived_table_nameの後。
- SELECT文の他の句の中で参照できる列名のリスト(オプション)。
- これを指定する場合、このリストに含まれる名前の数は、Vantageプラットフォームにfunction_nameテーブル関数組み込むために使用されたCREATE FUNCTION文のRETURNS TABLE句に含まれていた列数に一致していなければなりません。代替名リスト中の名前は、RETURNS TABLE句の列名のうち同じ位置にある列名に対応します。
- これを省略した場合、列名はVantageプラットフォーム上にfunction_nameテーブル関数を組み込む際に使用されたCREATE FUNCTION文のRETURNS TABLE句の中の列名と同じ名前になります。
- column_name data_type
- column_spec内。
- テーブル関数の動的結果行によって返される行フィールドに割り当てる1つ以上の列の名前とデータ型。
- BLOB AS LOCATOR形式またはCLOB AS LOCATOR形式を使用して、BLOBデータ型またはCLOBデータ型の列を指定することはできません。
- 詳細については、<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>を参照してください。
- column_name
- local_order_by_spec内。
- テーブル関数への入力に備えて、修飾された行が各AMPに対して順序付けされることを指定します。
- 同じON句にPARTITION BY ANY句とLOCAL ORDER BY句を指定することはできません。
- 同じON句にDIMENSION句とLOCAL ORDER BY句を指定することはできません。
- 複数のON句を使用し、その1つでLOCAL ORDER BYのみを指定する場合、他のすべてのON句で指定できるのはDIMENSIONのみです。
- 複数のON句を使用する場合、同じON句でDIMENSION句とともにLOCAL ORDER BY句を使用することはできません。
- LOCAL ORDER BY句とともに複数のHASH BY句を指定する場合は、次の制限が適用されます。
- すべての句に同じ数のLOCAL ORDER BY列が必要です。
- 列のデータ型は、同じ型であるか、または暗黙のキャストを使用して一致させる必要があります。