17.05 - WITH NO DATA - Advanced SQL Engine - Teradata Database

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

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

ソース テーブルまたは問合わせ式のデータは、その定義に基づいて新しいテーブルにコピーされません。

source_table_nameのテーブル定義のすべて(または定義する一部)が新しいテーブルにコピーされます。だだしそのデータはコピーされません。

列のサブセットはsubqueryを使って指定します。さもないと、この操作はすべての列定義をターゲット テーブルにコピーします。

例: 明示的な列名を指定したAS … WITH NO DATA

このCREATE TABLE … AS … WITH NO DATAリクエストは、副問合わせでtarget_tableの列名を列別名として指定しています。

このリクエストでは副問合わせが指定されていて、明示的なテーブルの種類が指定されていないため、target_tableのテーブルの種類は、subquery_tableのテーブルの種類ではなく、デフォルトのセッション モード デフォルトになります。

     CREATE TABLE target_table AS (
       SELECT column_x AS column_1, column_y AS column_2
       FROM subquery_table )
     WITH NO DATA;

例: 明示的な列属性を指定したAS … WITH NO DATA

このCREATE TABLE … AS … WITH NO DATAリクエストは列属性を指定しています。また、target_tableの列を定義するために式を使用しています。

このリクエストでは副問合わせが指定されていて、明示的なテーブルの種類が指定されていないため、target_tableのテーブルの種類は、subquery_tableのテーブルの種類ではなく、デフォルトのセッション モード デフォルトになります。

     CREATE TABLE target_table (
       column_1 TITLE 'max_x',
       column_2)
     AS (SELECT MAX(column_x), column_y
         FROM subquery_table
         GROUP BY 2 )
     WITH NO DATA;

例: 明示的な列属性を指定したAS … WITH NO DATA

この例では、上記と同じtarget_tableを作成しますが、コーディングの方法が異なっています。

このリクエストは副問合わせを指定していて、明示的なテーブルの種類を指定していないため、target_tableのテーブルの種類は、subquery_tableのテーブルの種類ではなく、デフォルトのセッション モード デフォルトになります。

     CREATE TABLE target_table AS (SELECT MAX(column_x) 
                                        (TITLE 'max_x' NAMED column_1),
                                         column_y AS column_2
                                   FROM subquery_table
                                   GROUP BY 2)
     WITH NO DATA;

例: GLOBAL TEMPORARY TABLE … AS … WITH NO DATA

このCREATE TABLE … AS … WITH NO DATAリクエストは、すべてのテーブル オプション句属性でデフォルトの定義を使用した、選択したすべての列定義を使用して、新規のグローバル一時テーブルを作成します。

このリクエストはsubqueryを指定していて、明示的なテーブルの種類が指定されていないため、target_tableのテーブルの種類のデフォルトは、subquery_tableのテーブルの種類ではなく、セッション モード デフォルトになります。

    CREATE GLOBAL TEMPORARY TABLE target_table AS (SELECT *
                                                   FROM subquery_table)
    WITH NO DATA;