首页 > 代码库 > SQL横表纵表转换和对比
SQL横表纵表转换和对比
横表转纵表
横表样式:
sql语句:
1 select Name,‘语文‘ as 科目,Chinese as 成绩 from HorizontalTab 2 union all 3 select Name,‘数学‘ as 科目,Math as 成绩 from HorizontalTab 4 union all 5 select Name,‘英语‘ as 科目,English as 成绩 from HorizontalTab 6 order by Name,科目 desc
转换结果:
横表优缺点:
优点:一行是一个实体。
缺点:添加字段,需要重新建表。
结论:改动不大的表可以使用横表。
-----------------------------------------------------------
纵表转横表
纵表样式:
sql语句:
1 select Name,SUM(case when course=N‘语文‘ then grade else 0 end) as ‘语文‘, 2 SUM(case when course=N‘数学‘ then grade else 0 end) as ‘数学‘, 3 SUM(case when course=N‘英语‘ then grade else 0 end) as ‘英语‘ 4 from VerticalTab group by Name
转换结果:
纵表优缺点:
优点:加字段方便。
缺点:数据之间的关系不清晰,会有数据量猛增的情况。
结论:频繁改动不确定的表可以考虑纵表。
SQL横表纵表转换和对比
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。