2017-06-25 139 views
-1

enter image description hereSQL数据透视表

请参阅上图中我的SQL问题。

如何为此编写SQL?

+6

不要发布文字的屏幕截图。如果您有问题,请在此输入。 – BSMP

+2

这似乎是非常基本的PIVOT。如果这是一个家庭作业问题,您应该期望您的课程文件。另外,https://stackoverflow.com/questions/7674786/mysql-pivot-table。 – Shawn

回答

3
DECLARE @Columns nvarchar(MAX),@SQL nvarchar(MAX); 
SET @Columns=N''; 
SELECT @Columns+=IIF(@Columns='', 
QUOTENAME(continent),N','+QUOTENAME(continent)) 
from(Select continent from student group by continent) as x ; 
Set @SQL=N'SELECT ['+STUFF(@Columns,1,1,'')+' 
FROM (Select continent,name,row_number() over(partition by continent order 
by name) rn from student) AS j 
PIVOT(MAX(name) FOR continent IN (['+STUFF(@Columns,1,1,'')+')) as p'; 
EXECUTE sp_executesql @SQL; 
+0

@李元试试这段代码 –