我有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之外的任何地方發佈圖像(在編寫帖子時可以使用圖像工具欄按鈕訪問)。對您的內容使用其他位置意味着未來的讀者可能無法使用這些內容,並且由於絕大多數內容都包含在其中,因此如果該內容不可用,那麼您的帖子就沒有價值,並且不應該在這裏。見[問]。 –