2011-09-20 95 views
0

我不知道我要如何做到这一点。 简单的例子反向枢轴查询帮助

studentid | sub1id  | sub2id | and so on..... 
---------------------------------------------------------- 
1   |  1  | 2  | and so on 
3   |  5  | 6  | and so on 

使用这样的表结构......我要在以下形式的输出特定学生

学生1

student | sub | 
====================== 
1   | 1 | 
1   | 2 | 

学生2

student | sub | 
====================== 
2   | 5 | 
2   | 6 | 

回答

1
declare @T table 
(
    studentid int, 
    sub1id int, 
    sub2id int 
) 
insert into @T values 
(1, 1, 2), 
(3, 5, 6) 

select studentid, sub 
from (select studentid, sub1id, sub2id 
     from @T 
     where studentid = 3) as T 
unpivot (sub for C in (sub1id, sub2id)) as U 
+0

请你解释一下这部分'unpivot(sub for subinid,sub2id)'谢谢 – mrN

+0

@mrN - 看看这里的解释unpivot。 http://msdn.microsoft.com/en-us/library/ms177410.aspx –