TABLEオプションの構文 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/vjt1596846980081.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage
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句オブジェクト
派生テーブル、ビュー、集合操作を指定する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列が必要です。
  • 列のデータ型は、同じ型であるか、または暗黙のキャストを使用して一致させる必要があります。