Pic*_*ght 1 sql pivot sql-server-2005
我不确定这是否会被称为旋转.
我的SQL 2005表[CustromerRoles]中的数据是这样的:
CustId RoleId
2 4
2 3
3 4
4 1
4 2
Run Code Online (Sandbox Code Playgroud)
[角色]表:
RoleId Role
1 Admin
2 Manager
3 Support
4 Assistant
Run Code Online (Sandbox Code Playgroud)
我想创建一个视图,以便:
SELECT*FROM [MYVIEW]会给我以下数据:
1和0将是位,以便我可以在UI显示器上显示带有复选框的网格.
CustId Admin Manager Support Assistant
2 0 0 1 1
3 0 0 0 1
4 1 1 0 0
Run Code Online (Sandbox Code Playgroud)
到目前为止,我不知道如何去做这件事.
您是否阅读过Microsoft SQL Server 2005中的PIVOT文档?
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;
Run Code Online (Sandbox Code Playgroud)
我没有测试过上面的内容,只是基于doc.这可能会让你开始.
似乎没有办法动态生成列.你必须对它们进行硬编码.