讲解数据库中行级转换成列级的实际应用

讲解数据库中行级转换成列级的实际应用,第1张

讲解数据库中行级转换成列级的实际应用,第2张

首先,我们需要摆一张桌子。有关详细信息,请参考以下内容:

创建分数表
(
Name varchar(10),
Subject varchar(10),
Result int
)

-将一些数据插入到分数表
插入到分数(名称,主题,结果)值(' Jason ',' Chinese ',74)
插入到分数(名称,主题,结果)值(' Jason ',' Math ',83)
插入到 ' physics ',94)
go

-使用PIVOT运算符
SELECT * FROM
(
SELECT Name,Subject,Result FROM score
)AS X
PIVOT
(
Sum(Result)FOR Subject IN([中文],[数学],[物理])
) AS PVT

-使用静态SQL。 科目字段中只有[中文],
[数学],[物理]值
选择名称,
sum(当'中文'时为案例科目,然后结果为0结尾)作为[中文],
sum(当'数学'时为案例科目,然后结果为0结尾)作为[数学],
sum(当'物理'时为案例科目,然后结果为0结尾)作为[物理]
来自分数
按名称分组

科目字段中可能有一些其他的
值,不限于[中文],[数学],[物理]
declare @ SQL varchar(2000)
set @ SQL = ' select Name '
select @ SQL = @ SQL+',sum(case Subject when
' ' '+Subject+' ' ' then Result else 0 end)['+Subject+']'
from(从分数中选择不同的科目)作为X[/br

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 讲解数据库中行级转换成列级的实际应用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情