SQL如何实现横表与纵表相互转换

2023-12-07 0 821
目录
  • 一、横表简单概述
  • 二、纵表简单概述
  • 三、纵表转横表代码如下以及视图展示
  • 四、横表转纵表代码如下以及视图展示
  • 五、横表、纵表优点与缺点
  • 六、总结

一、横表简单概述

横表是普通的建表方式。例如:表结构为主键、字段1、字段2、字段3…。

二、纵表简单概述

纵表的表结构为主键、字段代码、字段值,字段代码则为字段1、字段2、字段3…。

三、纵表转横表代码如下以及视图展示

1.纵表视图如下:

SQL如何实现横表与纵表相互转换

2.纵表转换成横表视图如下:

SQL如何实现横表与纵表相互转换

3.sql语句如下所示:

select student_name,
sum(case ts.subject when \’C语言\’ then ts.score else \’\’ end) as C语言,
sum(case ts.subject when \’数据结构\’ then ts.score else \’\’ end) as 数据结构,
sum(case ts.subject when \’操作系统\’ then ts.score else \’\’ end) as 操作系统
from t_student ts
group by ts.student_name;

四、横表转纵表代码如下以及视图展示

1.横表视图如下:

SQL如何实现横表与纵表相互转换

2.横表转换成纵表视图如下:

SQL如何实现横表与纵表相互转换

3.sql语句如下所示:

select ts.studnet_name,
\’C语言\’ as 科目,
ts.`C语言` as 成绩
from t_student1 ts
union all
select ts.studnet_name,
\’数据结构\’ as 科目,
ts.`数据结构` as 成绩
from t_student1 ts
union all
select ts.studnet_name,
\’操作系统\’ as 科目,
ts.`操作系统` as 成绩
from t_student1 ts
order by studnet_name,科目

五、横表、纵表优点与缺点

1.横表优点:一行表示了一个实体记录,清晰可见。缺点:如果现在要给这个表加一个字段,那么就必须重建表结构。

2.纵表优点:如果现在要给这个表加一个字段,只需要添加一些记录。缺点:数据描述不是很清晰,而且会造成数据库数据很多。另如果需要分组统计,要先group by,较繁琐

六、总结

应该把不容易改动表结构的设计成横表,把容易经常改动不确定的表结构设计成纵表。

到此这篇关于SQL如何实现横表与纵表相互转换的文章就介绍到这了,更多相关SQL 横表与纵表转换内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

您可能感兴趣的文章:

  • Mysql纵表转换为横表的方法及优化教程
  • SQL Server纵表与横表相互转换的方法

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 MsSql SQL如何实现横表与纵表相互转换 https://www.u-9.cn/database/mssql/121700.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务