2
P_ID, PROGR, DATA
1 , 1 , 'DATO A'
1 , 2 , 'DATO B'
1 , 3 , 'DATO C'
2 , 1 , 'DATO D'
2 , 2 , 'DATO E'
3 , 1 , 'DATO G'
有,我希望得到這樣的結果
P_ID, DATA , DATA_1 , DATA_2
1 , 'DATO A', 'DATO B', 'DATO C'
2 , 'DATO D', 'DATO E', NULL
3 , 'DATO G', NULL , NULL
這個可以用左邊來完成與同桌一起,東西這樣的(不是精確的結果,但作爲一個例子)
select * from
(select * from MYTABLE where PROGR = 1) a
left join
(select * from MYTABLE where PROGR = 2) b
on a.P_ID = b.P_ID
left join
(select * from MYTABLE where PROGR = 3) c
on a.P_ID = c.P_ID;
的問題是,該查詢是固定的,並且需要重新如果某些P_ID得到PROGR = 4,則寫入。我認爲我需要創建一個過程,但我一直試圖沒有成功。
在此先感謝。
這是一個很好的方法,但像最後一句話說,如果現在我有程序4在某一行,或然後程序會發生什麼5.可變數量的輸出列不是問題。 感謝您的回答,我學到了一些新東西。 – Martin
動態SQL將是最好的。你可以給我一個例子嗎?。謝謝 – Martin