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

GROUP BY を反転/吹き飛ばす

    Common Table Expression で管理できます

    WITH CTE AS (
        SELECT OwnerNumber,ItemCode,ItemNumber,CountOfItems FROM table
    
        UNION ALL SELECT OwnerNumber,ItemCode,ItemNumber,CountOfItems-1
        FROM CTE
        WHERE CountOfItems >= 2
    )
    SELECT OwnerNumber,ItemCode,ItemNumber
    FROM CTE
    ORDER BY ItemNumber
    OPTION (MAXRECURSION 0);
    

    編集:

    MAXRECURSION を追加しました Dev_etter によって指摘されたように、CountOfItems がデフォルトの最大再帰を超える状況を処理する



    1. Oracleは、最初のスペースまたは行末までの値を選択します

    2. ID列を使用してテーブルを作成する方法

    3. クイック挿入と複合一意キーのためのMyISAMとInnoDB

    4. MySQLエラー-#1062-キー2の重複エントリ''