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

Oracle SQL Connect By Logic

    最後の条件はデータには適用されませんが、無限の再帰を回避することが非常に重要です。

    この点を説明するために、テーブルに別の行を追加するとどうなるかを考えてみましょう。

    E40 E40
    

    E40で開始する場合 E90の代わりに 、Oracleは、EMP_ID != MANAGER_IDなしで無限再帰にスピンします。 E40であるため、条件 E40に接続し直します 。

    このクエリを作成するためのより良いアプローチは、NOCYCLEを使用することであることに注意してください。 明示的なチェックでコーディングする代わりにオプション:

    SELECT *
    FROM Temp
        START WITH EMP_ID = 'E90'
        CONNECT BY NOCYCLE PRIOR EMP_ID = MANAGER_ID
    ORDER BY EMP_ID
    



    1. SQL Server:NullVS空の文字列

    2. MySQL-予約なしですべてのユーザーにクエリを実行

    3. SQLServerExpressバックアップデータベース| SQLExpressバックアップの自動化とパージをスケジュールする方法

    4. 配列と多くの更新がある大きなテーブルでPostgreSQLが遅くなる