次に示す例では、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;