17.05 - 例: テーブル関数への入力パラメータのローカル順序 - 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-1146-175K-JPN
Language
日本語 (日本)

次に示す例では、UDFテーブルのためのLOCAL ORDER BY句の使用方法を説明しています。テーブル関数add2intは、入力として2つの整数値を取り、それら両方の値と合計を返します。

この例のクエリーは、add2intからすべての列を選択します。add2intでは、その入力であるdtが各AMP上でdt.x1の値順になることを指定しています。指定したローカルの順序付けはadd2int関数に適していない可能性があり、説明目的にのみ使用されていることに注意してください。

問合わせの想定される結果として、各AMPに対する行がx1の値でソートされます。最終的にハッシュされソートされたスプールが、add2intへの入力として使用されます。

     CREATE TABLE t1 (
       a1 INTEGER,
       b1 INTEGER);

     CREATE TABLE t2 (
       a2 INTEGER,
       b2 INTEGER);

     CREATE FUNCTION add2int (
       a INTEGER,
       b INTEGER)
     RETURNS TABLE (
       addend1 INTEGER,
       addend2 INTEGER,
       mysum INTEGER)
     SPECIFIC add2int
     LANGUAGE C
     NO SQL
     PARAMETER STYLE SQL
     NOT DETERMINISTIC
     CALLED ON NULL INPUT
     EXTERNAL NAME 'CS!add3int!add2int.c';
     WITH dt(x1,y1) AS (SELECT a1,b1
                        FROM t1)

     SELECT *
     FROM TABLE (add2int(dt.x1,dt.y1)
     LOCAL ORDER BY x1) AS tf;