- modifier
{ query_name [ column_list ] AS ( select_expression ) |
RECURSIVE recursive_query_name [ column_list ] AS ( seed seed_spec [...] )
}
- query_name
- 問合わせの名前。
- column_list
( column_name [,...] )
- select_expression
- 名前付きクエリーで格納する行データを取り出す非再帰的SELECT文。
- 変換グループにfromsqlルーチンがある場合だけ、UDTを返す式を列リストに指定できます。システムは、結果をクライアント アプリケーションに返す前に、fromsqlルーチンを使用して自動的に式をそのUDT値から外部タイプに変換します。
- SELECTリクエストの選択リストで、行レベルのセキュリティ制約列を指定できます。ただし、選択リストの算術式の一部として列を指定することはできません。列に返される値は、行からの行レベル セキュリティ制約のコード化された値です。
- recursive_query_name
- 再帰的問合わせの名前。
- seed
{ SELECT | SEL } [ DISTINCT | ALL ] { * | expr_spec [,...] }
FROM { single_table_spec | joined_table_spec | derived_table_spec }
WHERE search_condition
[ GROUP BY group_by_spec [,...] ]
[ { HAVING | QUALIFY } search_condition ]
[ ORDER BY order_by_spec [,...] ]
- シード文は、名前付き問合わせで格納するための行データを他のテーブルから取り出す非再帰的SELECT文です。
- seed_spec
UNION ALL { seed | recursive_statement }
- UNION ALLは、反復操作の結果を名前付きクエリーに追加します。
- column_name
- 指定された問合わせ定義中の列の名前。
- expr_spec
{ expression [ [AS] expression_alias_name ] |
table_name.*
}
- single_table_spec
table_name [ [AS] correlation_name ]
- joined_table_spec
joined_table {
[ INNER | { LEFT | RIGHT | FULL } [ OUTER ] ]
JOIN joined_table ON search_condition |
CROSS JOIN
}
- derived_table_spec
(subquery) [AS] derived_table_name
[ ( derived_table_column_name [,...] ) ]
- search_condition
- シード文によって返される行が満たしていなければならない条件付き検索式。
- 検索条件に行レベル セキュリティ制約の値を指定すると、この値はエンコード形式で表現しなければなりません。
- group_by_spec
{ ordinary_grouping_set |
empty_grouping_set |
rollup_list |
cube_list |
grouping_sets_specification
}
- order_by_spec
{ expression | column_name | column_name_alias | column_position }
[ ASC | DESC ]
- recursive_statement
{ SELECT | SEL } { * | expr_spec [,...] }
FROM { implicit_join [,...] | explicit_join }
WHERE search_condition
- 名前付きクエリーとその他のテーブルの結合から行データを取得するSELECT文。NORMALIZE関数、集約関数、または順序付けられた分析関数を含めることはできません。
- expr_spec
{ expression [ [AS] expression_alias_name ] |
table_name.*
}
- implicit_join
{ query_name | table_name } [ [AS] correlation_name ]
- explicit_join
{ { query_name | join_table_name } LEFT [OUTER] JOIN joined_table |
join_table_name RIGHT [OUTER] JOIN { query_name | joined_table } |
query_name INNER JOIN joined_table |
join_table_name INNER JOIN query_name
} ON search_condition
- DISTINCT
- 指定された式リストからの結果の重複するセットから、1行だけが返されます。
- 2行が重複するとみなされるのは、一方の行の各値が他方の行の対応する値と同じ場合だけです。
- ALL
- 式リストの結果に、重複行を含むすべての行が返されます。これは、デフォルト値です。
- *
- シード文のFROM句で参照されるすべてのテーブルのすべての列が返されます。
- table_nameによって修飾された場合、table_nameのみのすべての列が返されます。
- search_condition
- 結果の行が満たす必要がある1つまたは複数の条件式。
- 検索条件に行レベル セキュリティ制約の値を指定すると、この値はエンコード形式で表現しなければなりません。
- QUALIFYとHAVINGとの相違点は、QUALIFYフィルタがデータ上にある多種類の順序付き分析関数の実行結果に基づいていることです。
- expression
- スカラーUDFを含む、任意の有効なSQL式。
- expression_alias_name
- 式の別名。
- table_name
- 単一テーブル、派生テーブル、テーブルUDF、またはビューの名前。
- correlation_name
- table_nameの別名。
- joined_table
- 結合テーブルの名前。
- INNER
- 一方のテーブルの修飾行が、結合条件に従って、別のテーブルの修飾行と結合される結合。
- 内部結合はデフォルト値の結合タイプです。
- LEFT [ OUTER ]
- FROM句に最初にリストされたテーブルとの外部結合。
- LEFT OUTER JOINでは、左側のテーブル内の、2つのテーブルの内部結合の結果に返されない行が、nullで拡張されて外部結合の結果に返されます。
- RIGHT [ OUTER ]
- FROM句に2番目にリストされたテーブルとの外部結合。
- RIGHT OUTER JOINでは、右側のテーブル内の、2つのテーブルの内部結合の結果に返されない行が、nullで拡張されて外部結合の結果に返されます。
- FULL [ OUTER ]
- 行は両方のテーブルから返されます。
- 完全外部結合では、両方のテーブルの中の内部結合の結果に返されなかった行が、nullで拡張されて外部結合の結果に返されます。
- joined_table
- search_condition
- 結果の行が満たす必要がある1つまたは複数の条件式。
- FROM句に外部結合を指定する場合には、ON条件句は必須です。
- 検索条件の行レベル セキュリティ制約に指定する値は、エンコード形式にする必要があります。
- CROSS JOIN
- 制約のない結合または直積の結合。CROSS JOINは、FROM句に指定されたすべてのテーブルのすべての行を返します。
- 完全外部結合では、両方のテーブルの中の内部結合の結果に返されなかった行が、nullで拡張されて外部結合の結果に返されます。
- subquery
- 入れ子のSELECT文を指定します。
- サブクエリーの中にSELECT AND CONSUME文を使用することはできません。
- サブクエリーでNORMALIZEを指定できます。
- derived_table_name
- 派生テーブルの名前。
- derived_table_column_name
- 列名。このフィールドでは列名のみを指定します。「テーブル名.列名」や「データベース名.テーブル名.列名」のような形式は指定しないでください。
- UDT型の列は有効ですが、例外があります。
- ordinary_grouping_set
- シード文によって返される行をグループ分けする列式。
- 式は、LOB、ARRAYまたはVARRAYのタイプがある結果行をグループ化できません。
- ordinary_grouping_setは、次の3つの一般カテゴリに分けられます。
- column_name
- column_position
- column_expression
- empty_grouping_set
- 引数を持たない、隣接するLEFT PARENTHESIS、RIGHT PARENTHESISのペア。この構文は、計算されたグループ合計の総計をリクエストするために使用します。
- rollup_list
- 結果行を単一の次元の1つ以上の詳細レベルで報告するROLLUP式。
- 式は、LOB、ARRAYまたはVARRAYのタイプがある結果行をグループ化できません。
- cube_list
- 結果行を複数の次元の1つ以上の詳細レベルで報告するCUBE式。
- 式は、LOB、ARRAYまたはVARRAYのタイプがある結果行をグループ化できません。
- grouping_sets_specification
- 結果行を次のいずれかの方法で報告するGROUPING SETS式。
- 単一の次元(完全なROLLUPを指定しない)
- 複数の次元(完全なCUBEを指定しない)
- expression
- シード文のSELECT式リスト内の式を、名前、または式リスト内の式の数値の位置を指定する定数によって参照します。
- column_name
- SELECT文のORDER BY句で使用される列(複数可)の名前。これらの列を、昇順または降順にすることができます。
- column_name_alias
- 問合わせのSELECT式リストに指定されている列名の別名。この列で、結果の行がソートされます。
- column_name_aliasをソート値として指定する場合、その列が選択リストで指定されているかどうかにかかわらず、その列の別名を問合わせのFROM句で参照されているテーブルに定義されている列の名前と同じ名前にすることはできません。システムは常に、ユーザーが指定する列の別名よりも、基礎となる物理的な列の名前を優先して参照します。
- 問合わせの選択リスト内で、ソート列をcolumn_position値で指定できます。
- column_position
- ORDER BY句で指定される列の位置数値。昇順または降順にできます。
- ASC
- 結果が昇順でソートされます。
- ソート フィールドが文字列の場合、システムは現在のセッションの照合順序の定義に従って、昇順で整列します。
- デフォルトの順序はASCです。
- DESC
- 結果が降順でソートされます。
- ソート フィールドが文字列の場合、システムは現在のセッションの照合順序の定義に従って、降順でソートします。