この例は、別のテーブルに等価結合される変数参照テーブル関数を示しています。
この例については、以下の点に注意が必要です。
- テーブル関数はすべてのAMPに送信され、tbl1のすべての行からのtbl.c1が渡されます。したがって、これは変数モードのテーブル関数です(Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147を参照)。
- このテーブル関数の設計者は、「等価」条件が満たされない場合に行をまったく生成しないことによって関数にいくらかの判断機能があることを示すために、3つ目の引数を追加しました。例えば、入力引数tbl_l.c1と値tf2.c1の行が等しくない場合、関数は行を生成しません。このコードによって、WHERE句条件の結果としてテーブル関数により生成される行をフィルタ処理するという後続のステップは不要になります。
SELECT * FROM tbl_1, TABLE(tudf1(28.8, tbl_1.c1, 'equal')) AS tf2 WHERE tbl_1.c1 = tf2.c1;