17.05 - selection - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-175K-JPN
Language
日本語
Last Update
2021-03-30

SELECT句は括弧で区切ることができます。その場合、右括弧と左括弧を指定する必要があります。指定しないと、リクエストはアボートされます。

ビュー定義のSELECT句の任意の場所でSQL UDFを呼び出すことができます。ルールは、SELECTリクエストのものと同じです。

SELECT句の詳細な資料については、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください。

DISTINCT
指定されたexpressionリストからの結果の重複するセットから、1行だけが返されることを指定します。
2行が重複すると見なされるのは、一方の行の各値が他方の行のそれぞれの対応する値と同じ場合だけです。
ビュー定義にTOPnまたはTOP m PERCENT指定も含まれる場合、DISTINCT演算子を指定できません。
ALL
式リストの結果に、重複行を含むすべての行が返されます。
これは、デフォルトの値です。
TOP
上位行をSELECT操作から返します。
ビュー定義で以下のいずれかも指定する場合は、TOP n演算子を指定できません。
  • DISTINCT演算子
  • SAMPLE句
  • QUALIFY句
  • Subquery、つまり、ビュー定義内のsubqueryにTOP演算子を含めることはできません。
TOP演算子を指定するビューは更新できません。
ORDER BY句をTOP演算子と共に指定することもできます。それ以外の場合、ORDER BY句はビュー定義では無効です。
ORDER BY句のソート式にはBLOB、CLOB、UDT、Period型またはGeospatial型を持つ列、または順序付き分析関数を含めることができません。
TOPは、同様に使用できるQUALIFY RANK()やQUALIFY ROW_NUMBER()などの順序付き分析関数と同じように、あるいはそれ以上に優れた動作をします。
n
SELECT操作から返す行数のDECIMALまたはINTEGER値。
ORDER BY句を指定するかどうかによって、DMLリクエストで定義できるTOP n句よりも制限が大きくなる点に留意してください。ORDER BY句を指定しない場合、TOP n句は、TOP nではなく、any n基本テーブルの行のみを返すように指定します。
m PERCENT
SELECT操作からmパーセントの行のみが返されます。mはDECIMAL値またはINTEGER値のいずれかになります。
(m*COUNT(*)/100.0)の評価が整数値にならない場合、概数が計算され、次に大きい整数値になります。
例えば、( m *COUNT(*)/100.0)の評価が0.1の場合、概数の1になります。
( m *COUNT(*)/100.0)の評価が9.2の場合、概数の10になります。
Vantageがこの概数化を適用するのは、小数点以下15桁までです。例えば、( m *COUNT(*)/100.0)の評価が0.0000000000000001の場合、1に概算化されません。
WITH TIES
ORDER BYフィールドに同じ値を持つすべての適格な行が、結果セットに含まれます。
このオプションが機能するのは、ORDER BY句も同時に指定するときだけです。その他の場合は、システムはこのオプションを無視します。
WITH TIESオプションを指定しない場合、システムは最初のnまたはm PERCENTの適格な行だけを返します。
例えば、TOP 2 WITH TIESとORDER BY OrderValueを指定したとします。このフィールドの値が最も大きい顧客は、OrderValueが300,000 USDになっており、その次にOrderValueが同じ295,000 USDである2人の顧客が存在する場合、この3人すべてが結果セットで返されます。
WITH TIESを指定しない場合、OrderValueが295,000 USDである2人の顧客のうち、結果セットに最初に出現する方だけが返されます。
*
FROM句で参照されるすべてのテーブルのすべての列が返されます。
table_nameで修飾したときには、*はtable_nameで指定されたユーザー基本テーブルまたはビューだけのすべての列が返されることを指定します。
ビューを定義するときには、ビュー列を明示的に列挙します。したがって、ビューの定義の後にテーブルを変更した場合、SELECT *構文を使用しても、それらの変更は表示されません。

sub_selection

有効なSQL式。

集約演算子および算術演算子の両方をビュー定義式に指定できます。

ビュー定義にTOP nまたはTOP m PERCENT指定も含まれる場合、SAMPLE句を指定できません。

ビュー定義に集約が存在すると、そのビューは更新不可になります。

expression_alias
式の一時名。
別名は、式に名前を付けるために使用されます。テーブルに対する自己結合操作においては、これを常に指定する必要があります。