本文共 882 字,大约阅读时间需要 2 分钟。
不管我们在平时的学习或工作中,难免会遇到列转行的数据操作,下面的例子可参考一下
1、我们先建表
drop table if exists stu_Score create table stu_Score(name varchar(10),java INT,C# INT,python INT)insert into stu_Score VALUES('Dina',82,93,90)insert into stu_Score VALUES('Joyce',87,80,95)insert into stu_Score VALUES('Mandy',93,86,90)
2、看一下 stu_Score 表 的数据
select * from stu_Score
3、实现数据的列转行
方法一:
select * from( select name,course='java',score=java from stu_Score union all select name,course='C#',score=C# from stu_Score union all select name,course='python',score=python from stu_Score)stu_Infoorder by name, --下面是为了按照jave、C#、python 的格式输出case course when 'java' then 1 when 'C#' then 2 when 'python' then 3 end
方法二:
select name,cource,score from stu_Score unpivot (score for cource in([java],[C#],[python]))stu_Info
两种方法 查询出来的数据都是一样的,可见下图:
希望对你有帮助!!!
若想了解SQL Server 的行转列实现小示例,可点击
若想了解SQL Server 的列转行 与 行转列 的综合应用小示例,可点击
转载地址:http://iwpl.baihongyu.com/