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

関数のUPDATEまたはSELECTステートメントで動的列名を使用するにはどうすればよいですか?

    UPDATEで PL / pgSQLのステートメントでは、テーブル名をリテラルとして指定する必要があります。テーブル名と列を動的に設定する場合は、EXECUTEを使用する必要があります コマンドを実行し、クエリ文字列を一緒に貼り付けます:

    EXECUTE 'UPDATE ' || quote_ident(r.relname) ||
           ' SET ' || quote_ident(r.cols_list[1]) || ' = $1, ' || 
                      quote_ident(r.cols_list[2]) || ' = $2' ||
           ' WHERE ' || quote_ident(r.cols_list[1]) || ' = $3 AND ' ||
                        quote_ident(r.cols_list[2]) || ' = $4'
    USING ncicd9, ncdesc, ocicd9, ocdesc;
    

    USING 上記のように、句はデータ値の置換にのみ使用できます。



    1. タイムスタンプが今日の日付と一致する場合、SQLiteは行を選択します

    2. PLSQL JDBC:最後の行IDを取得する方法は?

    3. NULL ONNULLINPUTを使用してUDFのパフォーマンスを向上させる

    4. SQLServerでのINSERTまたはUPDATEのソリューション