我有一个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初学者,我不知道如何解决这个问题。