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

SQL でピボットする方法

    PIVOT に関するドキュメントを読みましたか? Microsoft SQL Server 2005?

    SELECT CustId, 
      [1] AS Admin,
      [2] AS Manager,
      [3] AS Support,
      [4] AS Assistant
    FROM (SELECT c.CustId, r.RoleId
    FROM CustomerRoles c JOIN Roles r USING (RoleId)) AS s
    PIVOT (
     COUNT(CustId)
     FOR RoleId IN ([1], [2], [3], [4])
    ) AS pvt
    ORDER BY CustId;
    

    上記はテストしていませんが、ドキュメントに基づいています。これで始められるかもしれません。

    列を動的に生成する方法はないようです。それらをハードコーディングする必要があります。



    1. SELECTステートメントで区切られた値の右側の文字を抽出します

    2. (DBMS_RLS)Oracle Row Level Security(RLS)を使用した場合のパフォーマンスへの影響は?

    3. ACFリピーター出力の行の総数をカウントする方法

    4. FOREIGNKEY制約のポリモーフィズム