SQL Server 列转行

文章展示了如何使用SQL创建一个学生分数表(StuScore),插入数据,然后通过UNPIVOT操作将列转换为行,以便于数据分析。需要注意的是,UNPIVOT操作在某些数据库系统中可能需要特定的兼容级别(如2005以上)才能执行。
摘要由CSDN通过智能技术生成

 一、建表测试

create table StuScore(name varchar(38),Chinese decimal(4,1),mathematics decimal(4,1),English decimal(4,1))
insert into StuScore VALUES('张三',82.2,93,90)
insert into StuScore VALUES('李四',87,81.1,99)
insert into StuScore VALUES('王五',93,86.6,90.9)

二、列转行

select name,cource,score
from
	(select name,Chinese as '语文',mathematics as '数学',English as '英语' from StuScore) s
unpivot
	(score for cource in
		(语文,数学,英语)
) as StuInfo;

注意

数据库兼容级别低于2005提示以下信息:'unpivot' 附近有语法错误。您可能需要将当前数据库的兼容级别设置为更高的值,以启用此功能。有关 ALTER DATABASE 的 SET COMPATIBILITY_LEVEL 选项的信息,请参见帮助。

数据库属性 》 选项 》 兼容级别设置成2005以上(包含2005)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值