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

以前の接続による更新クエリのSQL構文

    階層クエリはSELECTでのみ機能します。 UPDATEでは機能しません(機能する場合は適切である可能性があることに同意します)。

    だからあなたができることはこれです:

    update HTABLE 
    set status = 'INACTIVE'
    WHERE STATUS <> 'CLOSE'
    and id in ( select c.id
                from htable
                connect by prior ID = PARENT_ID 
                start with PARENT_ID = 12345);
    

    列の順序に注意してくださいconnect by prior ID = PARENT_ID 。通常、私たちはSTART WITH行からツリーを歩きたいのですが、これは私がやったことです。ご注文のconnect by prior PARENT_ID = ID ツリーを12345からその親、祖父母などに移動します。それが必要な場合は、connect byを切り替えます。 条項を取り戻します。



    1. 続編:複数のwhere句

    2. xamppを使用したApacheのインストール中にエラーが発生しました

    3. 複数の結果セットを返すPostgreSQL関数

    4. マージレプリケーションでの列レベルと行レベルの追跡