2017-08-29 166 views
0

我有3和表像的圖像在下面的鏈接:樞軸排在SQL Server列2014

https://drive.google.com/file/d/0B0P-s1mtoHkaY2hJUEJuTnZOYTQ/view

我可以顯示結果如上一個?

我在Google上研究過,發現它是通過在SQL中使用pivot獲得的。但我無法得到它。 幫助將不勝感激。

在此先感謝。

+0

你是對的,你需要一個數據透視查詢。你嘗試過什麼嗎? –

+0

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

回答

2

您可以嘗試通過接線表連接用戶和角色表一起,然後旋轉讓每個角色作爲一個單獨的列:

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 

輸出:

enter image description here

此處演示:

Rextester

+0

感謝您的幫助。這對我很有用。但是,如果是這樣,當我添加新的角色,那麼它不能動態顯示。你能改善它嗎? –

+0

@NvPeter如果您正在詢問如何爲數據集中的新角色添加新列,如果您想自動執行此操作,則需要動態SQL。 –