SQL Server:使用PIVOT的长到宽数据?

时间:2016-03-23 20:11:57

标签: sql-server pivot

我有一个SQL查询,它会生成学生及其顾问的列表。学生可以有多个顾问,但现在每行只有一个学生和一个顾问,如下所示:

+---------+---------+
| student | advisor |
+---------+---------+
|       1 | a       |
|       2 | x       |
|       2 | y       |
|       3 | a       |
|       4 | b       |
+---------+---------+

我希望特定学生的所有顾问都在一条线上:

+---------+----------+----------+----------+
| student | advisor1 | advisor2 | advisor3 |
+---------+----------+----------+----------+
|       1 | a        |          |          |
|       2 | x        | y        |          |
|       3 | a        |          |          |
|       4 | b        |          |          |
+---------+----------+----------+----------+

目前,顾问列的数量是任意的。

SQL Server dynamic PIVOT query?Write advanced SQL Select是类似的问题,但我不希望顾问的名字本身成为列标题。关于如何编写PIVOT语句,我感到很遗憾。

我的思维过程是循环遍历每个不同的学生,然后遍历每个学生的顾问并逐一填写列。但是,我是一个SQL初学者,我不知道如何解决这个问题。

0 个答案:

没有答案