IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页数据库Oracle → SQL语句,列合并最笨的实现方法

SQL语句,列合并最笨的实现方法

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  以前曾经遇见过,忘记怎么解决的了。这次又遇见了这个问题,没有办法逃避,只好硬着头皮解决。

  关键字:SQL oracle 视图 view 列合并

  问题简单描述:[模型]

  name   item   score

  小王      数学     1

  小王      语文     2

  小王      物理     3

  小王      化学     4

  这是一个表的四条记录

  问:如果已知小王只会对应四个科目,如何SQL查询输出成:

  小王 数学 1  语文 2  物理 3  化学 4

  如果科目不固定,能否实现?

  [不能在页面上头处理,只能用SQL语句实现]

  最笨的解决办法:[个人认为一定有更好的实现方法]

  假设表为a

  小王只会对应四个科目

  解法如下:[SQL 语句]

  select a.name,a.item,a.score,b.item,b.score,c.item,c.score,d.item,d.score

  from a a,a b,a c,a d

  where a.name='小王' and a.item='数学' and b.name='小王' and b.item='语文'

  and c.name='小王' and c.item='物理' and d.name='小王' and d.item='化学'

  哈哈,史上最烂的SQL语句 诞生

  科目固定的条件下[也就是列数固定]可以解决问题,科目不固定,就不行了。

  写到这里想起来了,以前遇到这个问题的时候,是将数据表中的及录取出来,然后呢在页面或者后台构建一个list,list的维度是固定的。然后通过list和resultset的转置,最后实现了以上的列合并结果。

  其实静下心来思考一下,现在的关系型数据库其实已经很大程度上符合了现实世界的逻辑,之所以会出现这种需要转置,或者需要列合并的特殊处理,大多数情况是跟我们的数据库设计、模型设计或者现实逻辑等方面出现不足导致的。

  因为这篇文章不是讨论我们实际开发中的其他方面,就不展开讨论了。希望本文能够给正在各个搜索引擎上疯狂搜索列合并的网友一点儿帮助。

  也希望大家能对这个难题,给出更好的解决办法,多谢!

关键词标签:SQL语句

相关阅读

文章评论
发表评论

热门文章 Oracle中使用alter table来增加,删除,修改列Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制Oracle对user的访问控制

相关下载

人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限