Sql server 中将数据行转列列转行(二)

老规矩,先弄一波测试数据,数据填充代码没有什么意义,先折叠起来:

Sql server 中将数据行转列列转行(二)
/*
    第一步:创建临时表结构
*/
CREATE TABLE #Student  --创建临时表
(
    StuName nvarchar(20),    --学生名称
    Chinese int,
    Math int,
    English int
)
DROP TABLE #Student      --删除临时表
SELECT * FROM #Student   --查询所有数据

INSERT INTO #Student(StuName,Chinese,Math,English) VALUES('张三',70,86,96);
INSERT INTO #Student(StuName,Chinese,Math,English) VALUES('李四',49,85,86);
INSERT INTO #Student(StuName,Chinese,Math,English) VALUES('王五',59,58,90);
INSERT INTO #Student(StuName,Chinese,Math,English) VALUES('赵六',68,79,80);
View Code

 

一:,下面是转换之前与之后的截图对比

  如果想要行转列,参考上一篇:Sql server 中将数据行转列列转行(一)

Sql server 中将数据行转列列转行(二)

 

方法一:使用 UNION ALL 拼接多个结果集

SELECT * FROM (
    SELECT StuName,课程='语文',分数=Chinese FROM #Student
  UNION ALL
    SELECT StuName,课程='数学',分数=Math FROM #Student
  UNION ALL
    SELECT StuName,课程='英语',分数=English FROM #Student
)AS TE
ORDER BY TE.StuName ASC

 

方法二:

 

上一篇:js array 排序


下一篇:在Ubuntu 18.04 安装 adb