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

SQLServerでの再帰クエリ

    これを試してください:

    ;WITH CTE
    AS
    (
        SELECT DISTINCT
            M1.Product_ID Group_ID,
            M1.Product_ID
        FROM matches M1
            LEFT JOIN matches M2
                ON M1.Product_Id = M2.matching_Product_Id
        WHERE M2.matching_Product_Id IS NULL
        UNION ALL
        SELECT
            C.Group_ID,
            M.matching_Product_Id
        FROM CTE C
            JOIN matches M
                ON C.Product_ID = M.Product_ID
    )
    SELECT * FROM CTE ORDER BY Group_ID
    

    OPTION(MAXRECURSION n)を使用できます 再帰の深さを制御します。

    SQLフィドルデモ



    1. ServiceBrokerを使用した非同期処理の概要

    2. nodejsでmysqlクエリコールバックにパラメータを渡す方法

    3. OracleでのDATEのフォーマット

    4. java.util.MissingFormatArgumentException:フォーマット指定子:s