在写一些复杂的SQL的时候,经常需要使用到行变列的技巧,一些帐务系统的统计也经常会写到这样的SQL。主要用到了max、decode或nvl这些函数来达到目的。写下来让大家互相学习学习!下面是一个行变列的例子。 如表ROW2COLUMN2有以下数据: 名字 课程 分数 1 张三 语文 80 2 张三 数学 86 3 张三 英语 75 4 李四 语文 78 5 李四 数学 85 6 李四 英语 78 想变成下面记录: 名字 语文 数学 英语 1 李四 78 85 78 2 张三 80 86 75 ---------------------------------------------- CREATE TABLE ROW2COLUMN2(NAME_ VARCHAR2(20), CLASS VARCHAR2(50), SCORE NUMBER(3)); INSERT INTO ROW2COLUMN2 VALUES ('张三', '语文', 80); INSERT INTO ROW2COLUMN2 VALUES ('张三', '数学', 86); INSERT INTO ROW2COLUMN2 VALUES ('张三', '英语', 75); INSERT INTO ROW2COLUMN2 VALUES ('李四', '语文', 78); INSERT INTO ROW2COLUMN2 VALUES ('李四', '数学', 85); INSERT INTO ROW2COLUMN2 VALUES ('李四', '英语', 78); SELECT * FROM ROW2COLUMN2; SELECT NAME_, MAX(DECODE(CLASS, '语文', T.SCORE, 0)) 语文, MAX(DECODE(CLASS, '数学', T.SCORE, 0)) 数学, MAX(DECODE(CLASS, '英语', T.SCORE, 0)) 英语 FROM ROW2COLUMN2 T GROUP BY NAME_;
- 浏览: 92336 次
- 性别:
- 来自: 北京
最新评论
-
flyhaoheng:
在JAVA程序中应该怎么调用?
IP地址、手机归属和身份证查询接口 -
yobuke:
谢谢!
Thinking in UML 读后感 -
yangleilt:
还是不太明白
james邮件服务器配置详解 -
streamfly:
你好,我的openfire用的3.6.4,按照你上篇和这篇帖子 ...
openfire3.6.2集成现有系统用户 -
onhp:
我连的是oracle数据库,怎么设置数据库连接属性?
openfire3.6.2集成现有系统用户
相关推荐
oracle行转列
oracle 行转列的sql语句写法, 附带例子
Oracle行转列
oracle行转列_列转行,实例加解析,自己测试没问题。免费分享了~
NULL 博文链接:https://vernonchen163.iteye.com/blog/1902976
数据库查询中难免会遇到行列转换的情况,摘列一些较精典的解决方案
oracle数据库最详细的行转列资料,是官方文档的详细介绍版,中文的
行转列函数,对于学习sql查询的朋友们,可能会遇到这样的要求,此文档中做了详细记载,希望可以帮到你!
用存储过程写的动态行转列。简单易用,查询速度高效
许多情况下,由于程序中需要将行转为列展示,如果使用ORACLE那么这个资源适合你。
关于oracle数据库如何行转列SQL语句。
oracle实现行转列功能,并使用逗号进行隔开拼接,成为一条数据.pdf
SQL行转列问题,有实例,根据具体实例讲解,清晰易懂。 希望对你有帮助!
理解日常工作中常用到的多列分组, 如【统计不同部门、 不同职位的平均工资】和 行转列 包含例子 和 个人理解分析
Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。 网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数...
oracle知识列点 一个简单的行列转换例子,需要的可以看下