我有3和表像的图像在下面的链接:枢轴排在SQL Server列2014
https://drive.google.com/file/d/0B0P-s1mtoHkaY2hJUEJuTnZOYTQ/view
我可以显示结果如上一个?
我在Google上研究过,发现它是通过在SQL中使用pivot获得的。但我无法得到它。 帮助将不胜感激。
在此先感谢。
我有3和表像的图像在下面的链接:枢轴排在SQL Server列2014
https://drive.google.com/file/d/0B0P-s1mtoHkaY2hJUEJuTnZOYTQ/view
我可以显示结果如上一个?
我在Google上研究过,发现它是通过在SQL中使用pivot获得的。但我无法得到它。 帮助将不胜感激。
在此先感谢。
您可以尝试通过接线表连接用户和角色表一起,然后旋转让每个角色作为一个单独的列:
SELECT
u.Id AS UserID,
u.UserName,
MAX(CASE WHEN r.Name = 'Admin' THEN 'TRUE' ELSE 'FALSE' END) AS Admin,
MAX(CASE WHEN r.Name = 'Manager' THEN 'TRUE' ELSE 'FALSE' END) AS Manager,
MAX(CASE WHEN r.Name = 'Employer' THEN 'TRUE' ELSE 'FALSE' END) AS Employer
FROM Users u
LEFT JOIN UserRole ur
ON u.Id = ur.UserID
LEFT JOIN Role r
ON ur.RoleID = r.Id
GROUP BY
u.ID,
u.UserName
ORDER BY
u.Id
输出:
此处演示:
感谢您的帮助。这对我很有用。但是,如果是这样,当我添加新的角色,那么它不能动态显示。你能改善它吗? –
@NvPeter如果您正在询问如何为数据集中的新角色添加新列,如果您想自动执行此操作,则需要动态SQL。 –
你是对的,你需要一个数据透视查询。你尝试过什么吗? –
请勿在堆栈溢出imgur之外的任何地方发布图像(在编写帖子时可以使用图像工具栏按钮访问)。对您的内容使用其他位置意味着未来的读者可能无法使用这些内容,并且由于绝大多数内容都包含在其中,因此如果该内容不可用,那么您的帖子就没有价值,并且不应该在这里。见[问]。 –