LoginSignup
9
2

同じような名前のテーブルを作りたい時に配列をforループで回して作りたいってとき時々ありますよね?
それもSQLだけでやってしまいたい時って結構ないでしょうか。
今回はそれをLATERAL FLATTENを使ってシュッとやる方法をご紹介します。

EXECUTE IMMEDIATE $$
DECLARE
 table_names CURSOR FOR SELECT t.value || '_table' table_name
    FROM LATERAL FLATTEN(INPUT => ['a', 'b', 'c', 'd']) t;
BEGIN
FOR t in table_names DO
    -- なんかテーブルを使ってやりたい処理
END FOR;
END;
$$;

簡単な流れとしては

  1. LATERAL FLATTENでArrayを展開したものをクエリするCURSORを定義
  2. forループを回す
  3. やりたい処理を書く

以上です!

これをやりたい場面がいつかきっと来ると思います。
それでは!

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2