行列的SQL实现有助于我们存储和显示数据。

行列的SQL实现有助于我们存储和显示数据。
MS SQL Server 2005微软推出了pivot和unpivot实现队伍的行列,大大方便了我们的数据和演示文稿中的数据存储。今天,这两个关键词进行了分析,并以实例说明了如何存储数据、如何展示数据。
例如,在学生选课和成绩系统中,有一个存储学生课程成绩的表,我们不能预测课程的数量。因此,一般表的设计如下:
图1
最后一列是课程编号,所以如果它不会增加学生放学后选择的课程,那么我们必须向用户提交的报告大致上是这样的:
图2
你可以看到当存储的数据在存储中使用时,数据的最终显示正在显示,如何实现以下详细的分析和说明:
创建表语句
复制代码代码如下所示:
使用{主}

对象:表{ } { } dbo。table_1脚本日期:08 / 06 / 2013 / ****** 13:55:39 ****** /
ansi_nulls上集

quoted_identifier上集

ansi_padding上集

创建表{ } { }(table_1 dbo。
{姓名} { varchar }(50)不为空,
{ { } }不为空,
{ } { }不空subject_id int
在{主}上

ansi_padding下集


插入测试数据
复制代码代码如下所示:
插入{掌握}。{ DBO }。{ table_1 }({姓名},{成绩},{ subject_id })值('zhang三',90, 1);
插入{掌握}。{ DBO }。{ table_1 }({姓名},{成绩},{ subject_id })值('zhang三',80, 2);
插入{掌握}。{ DBO }。{ table_1 }({姓名},{成绩},{ subject_id })值('zhang三',70, 3);
插入{掌握}。{ DBO }。{ table_1 }({姓名},{成绩},{ subject_id }(国王)值五,50, 1);
插入{掌握}。{ DBO }。{ table_1 }({姓名},{成绩},{ subject_id }(国王)值五,40, 2);
插入{掌握}。{ DBO }。{ table_1 }({姓名},{成绩},{ subject_id })值(李四',60, 1);

现在查询的数据在table_1图1中的结果,现在我们要得到图2的结果,然后使用下面的语句:
复制代码代码如下所示:
选择{ }、{ 1 }、{ 2 }、{ 3 }
{掌握}。{ } { }从table_1 dbo。
枢轴

和(评分)在为subject_id({ 1 },{ 2 },{ 3 })
当PVT


如果自己的数据库表存储在图2中,可以在图1的方式呈现,你需要使用透视,可以做。
复制代码代码如下所示:
选择{姓名},{ subject_id },{分}


选择{ }、{ 1 }、{ 2 }、{ 3 }
{掌握}。{ } { }从table_1 dbo。
枢轴

和(评分)在为subject_id({ 1 },{ 2 },{ 3 })
当PVT
P)
逆透视

在subject_id评分({ 1 },{ 2 },{ 3 })
作为unpvt

当然,我在table_1基础PVT进行存储,然后逆透视列显示。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部