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

機能するパラメータとしてのPostgreSQLCTEレコード

    関数が単一のレコードを返す場合:

    WITH cte AS (SELECT 1 a, 2 b)
    SELECT my_function(a, b) FROM cte;
    

    動作します。ただし、関数がSRF(Set-Returning-Function)の場合は、LATERALを使用して、JOINステートメントの前のテーブルの結果を後で関数にフィードすることをデータベースに通知する必要があります。加入。これは次のように実行されます:

    WITH cte AS (SELECT 1 a, 2 b)
    SELECT * FROM cte, LATERAL my_function(a, b);
    

    LATERALにより、PostgreSQLはCTEから各行を取得し、その行の値を使用して「my_function」を実行し、その関数の結果をSELECTステートメント全体に返します。




    1. Oracle12.1でJSON列を更新する方法

    2. MySQLサブクエリ-LEFTJOINの最初のレコードのみを検索します

    3. mysqli_real_escape_stringを使用して、クエリ文字列を保護するのに十分ですか?

    4. OraclePartitionedSequence