2014-07-03 43 views
1

我有連接到人的電話號碼錶,號碼被人ID已經分區:表透視

person_id number  row_count 
1   5556667777 1 
1   5435346523 2 
1   7645634344 3 
2   5556667777 1 
2   5435346523 2 
3   7645634344 1 

每人數量可達到二十個,但我已經讓他們按優先級排序,並希望使每人的前五個數字的五列,離開null空colums而忽略過去的第五列數字:

person_id num_1  num_2  num_3  num_4  num_5 
1   5556667777 5435346523 7645634344 null  null 
2   5556667777 5435346523 null  null  null 
3   7645634344 null  null  null  null 

我一直環顧四周,看起來像pivot我這是正確的命令,但我無法圍繞類似的例子來理解它。

回答

2

PIVOT需要一些時間來熟悉,但幸運的是,你的情況是一個非常簡單的例子:

SELECT person_id, [1] Num_1,[2] Num_2,[3] Num_3,[4] Num_4,[5] Num_5 
FROM Table1 
PIVOT(MAX(number) FOR row_count IN ([1],[2],[3],[4],[5]))pvt 

演示:SQL Fiddle

既然你只使用5個號碼,而忽略了休息,對使用的5個值進行硬編碼很容易,但這也可以動態完成。

+0

喜歡它。謝謝!!工作很好。 – dthree