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

SQL Server でテーブルの行を列にフラット化する

    必要な列の数がわかっているか最大数がある場合は、単純な PIVOT を実行できます。それ以外の場合は、DYNAMIC にする必要があります。

     Select *
      From (
            Select [Code]
                  ,[Data]
                  ,[Col] = concat('Data',Row_Number() over (Partition By [Code] Order by 1/0))
             From  YourTable
           ) src
     Pivot (max([Data]) for [Col] in ([Data1],[Data2],[Data3],[Data4],[Data5])) pvt
    

    返品

    Code        Data1   Data2   Data3   Data4   Data5
    SL Payroll  22      33      43      NULL    NULL
    


    1. データベースごとに、mysqldumpファイルを複数のデータベースに分割します

    2. Oracle Varchar2にバイトを格納し、ASCIIをテキストとして処理するにはどうすればよいですか。

    3. MariaDBSQL集合演算子

    4. ユーザー設定用のデータベーステーブル構造