以前遇到过,忘记怎么解决了。这次又遇到这个问题,无路可逃,只好硬着头皮解决了。
关键词:SQL oracle视图视图列合并
问题的简单描述:[模型]
名称项目分数
王晓数学1
王晓宇文2
王晓物理学3
王晓化学4
这是一个表的四个记录。
问:如果已知小王粲只对应于四个主题,SQL查询如何输出为:
小王数学1语文2物理3化学4
如果主体不固定,能否实现?
[不能在页面上处理,只能用SQL语句实现]
笨办法:[个人觉得一定有更好的办法实现]
假设表a。
小王粲只对应四科。
解决方法如下:[SQL语句]
选择a .名称,a .项目,a .分数,b .项目,b .分数,c .项目,c .分数,d .项目,d .分数
从a a,a b,a c,a d
A.name = '小王'和a.item= '数学'和b.name= '小王'和b.item= '语文'
还有c.name= '小王'和c.item= '物理'和d.name= '小王'和d.item= '化学'
哈哈,史上最烂的SQL语句诞生了。
在科目固定[即列数固定]的情况下,问题可以解决,但科目不固定就不行。
我想到这里。之前遇到这个问题的时候,我在数据表里承认了求和,然后在页面或者后台建了一个列表。列表的维度是固定的。然后通过list和resultset的换位,最终实现上述列合并结果。
其实还是冷静下来想想吧。现在的关系数据库其实很大程度上符合现实世界的逻辑。之所以需要这种转置或者列合并的特殊处理,多半是因为我们的数据库设计、模型设计或者真实逻辑上的不足。
因为这篇文章不是关于我们实际发展的其他方面,我就不讨论了。希望这篇文章能给正在各种搜索引擎上疯狂合并搜索栏的网友们一些帮助。
也希望大家能给出更好的解决这个问题的办法。谢谢大家!
关键词:SQL语句
优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。本文链接:http://www.123down.cn/gonglue/227357.html