例: LOCAL ORDER BYオプションの使用 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

この例では、以前の例と同じテーブルを使用します。ただし、ローカルに選択する行を整列するために、orders_stagingという名前の整数列を持つ新しいバージョンのo_sequenceを使用します。

     ALTER TABLE orders_staging
     ADD o_sequence INTEGER;

以下のINSERT...SELECTは、orders_stagingから選択する列の行をo_sequenceへ挿入する前に、ordersごとにローカルに整列します。

     INSERT INTO orders
       SELECT o_orderkey, o_custkey, o_orderstatus, o_totalprice+10,
              o_ordertsz, o_comment
       FROM orders_staging 
       LOCAL ORDER BY o_sequence;

LOCAL ORDER BY句の場合、o_sequenceはターゲット テーブルorders内の列に解決しないため、データベースは標準の解決ルールを使用して、SELECTリクエストの基礎となるテーブルorders_staging内のo_sequenceに解決します。orders_staging.o_sequenceは選択式リストに含まれず、スプールはローカルに生成されてorders_staging.o_sequenceの値を基準にソートされてから、ordersにローカルに挿入されます。