sql >> データベース >  >> RDS >> PostgreSQL

postgresqlで行が一致するまで選択しますか?

    必要なのは一種の停止条件です。私の知る限り、SQLにはそのようなものはなく、少なくともPostgreSQLの方言です。

    PL / PgSQLプロシージャを使用してカーソルから行を読み取り、停止条件が満たされるまでそれらを返すことができます。超高速ではありませんが、大丈夫です。単なるFOR IF expression THEN exit; ELSE return next; END IF;FORの場合、PL / PgSQLは内部でカーソルを使用するため、明示的なカーソルは必要ありません。 クエリをループします。

    もう1つのオプションは、カーソルを作成し、アプリケーションでカーソルから行のチャンクを読み取り、停止条件が満たされたときに最後のチャンクの一部を破棄することです。

    いずれにせよ、カーソルはあなたが望むものになるでしょう。

    ちなみに、stop式をPostgreSQLに実装するのは実際にはそれほど難しいことではありません。新しいエグゼキュータノードタイプを実装する必要がありますが、新しいCustomScanサポートにより、拡張機能でそれを実行するのが実用的になります。次に、式を評価して、行のフェッチを続行するかどうかを決定します。



    1. MySQL-列を行にピボット解除する方法は?

    2. MySQLのJSON_VALUE()

    3. 更新Sqlで列名を変更するApacheDbutils

    4. SQLの別の列に基づいて列を更新する方法