ソース テーブルまたは問合わせ式のデータは、その定義に基づいて新しいテーブルにコピーされません。
source_table_nameのテーブル定義のすべて(または定義する一部)が新しいテーブルにコピーされます。だだしそのデータはコピーされません。
列のサブセットはsubqueryを使って指定します。さもないと、この操作はすべての列定義をターゲット テーブルにコピーします。
例: 明示的な列名を指定したCREATE TABLE 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;
例: 明示的な列属性を指定したCREATE TABLE 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;
例: 明示的な列属性を指定したCREATE TABLE 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;
例: CREATE GLOBAL TEMPORARY TABLE AS … WITH NO DATA
このCREATE GLOBAL TEMPORARY TABLE AS … WITH NO DATAリクエストは、すべてのテーブル オプション句属性でデフォルトの定義を使用した、選択したすべての列定義を使用して、新規のグローバル一時テーブルを作成します。
このリクエストはsubqueryを指定していて、明示的なテーブルの種類が指定されていないため、target_tableのテーブルの種類のデフォルトは、subquery_tableのテーブルの種類ではなく、セッション モード デフォルトになります。
CREATE GLOBAL TEMPORARY TABLE target_table AS (SELECT * FROM subquery_table) WITH NO DATA;