1
比方說,我有這個表:在TSQL使用旋轉
Name Occupation
Samantha Doctor
Julia Actor
Maria Actor
Meera Singer
Ashely Professor
Ketty Professor
Christeen Professor
Jane Actor
Jenny Doctor
Priya Singer
我想有這樣的輸出:
Doctor Professor Singer Actor
Jenny Ashley Meera Jane
Samantha Christeen Priya Julia
NULL Ketty NULL Maria
我要佔領行轉換成列,然後通過列表中的名稱佔用。 我一直在嘗試pivot
關係運算符,但我們傳入pivot
的第一個參數應該是一個聚合函數,所以我不確定這是否是解決此查詢的最佳方法。 這是我一直在使用pivot
但我使用max(name)
當然工作,它只是一個返回名稱查詢:
select * from occupations
pivot (max(name) for occupation in ([doctor],[actor],[singer],[professor]))
as pvt
這是使用上面的查詢我的輸出:
doctor actor singer professor
Samantha Maria Priya Ketty
我可以使用pivot
關係運算符來解決這個問題嗎?我可以做些什麼改變?
取代'SELECT * FROM occupations'使用'選擇* from(select *,row_number()over(按職業順序劃分(選擇null))職業)o'。你想分配一個row_number或類似的東西,使每一行不同。編輯:如果你不想讓行號顯示在最終結果集中,只需選擇特定的列。 – ZLK