oracle 行转列(转载)
来源:互联网 发布:多角色数据库设计 编辑:程序博客网 时间:2024/06/08 06:44
SQL> create table temp1
2 (c1 varchar2(20),
3 c2 number(3));
Table created.
SQL> insert into temp1
2 (c1,c2)
3 select '语文',70 from dual
4 union
5 select '数学',80 from dual
6 union
7 select '英语',58 from dual;
3 rows created.
SQL> select * from temp1;
C1 C2
-------------------- ----------
数学 80
英语 58
语文 70
SQL> select max(decode(c1,'语文',c2)) 语文,
2 max(decode(c1,'数学',c2)) 数学,
3 max(decode(c1,'英语',c2)) 英语
4 from temp1;
语文 数学 英语
---------- ---------- ----------
70 80 58
SQL> select case when max(decode(c1,'语文',c2))<60 then '不及格'
2 when max(decode(c1,'语文',c2))>=80 then '优秀'
3 else '及格' end 语文,
4 case when max(decode(c1,'数学',c2))<60 then '不及格'
5 when max(decode(c1,'数学',c2))>=80 then '优秀'
6 else '及格' end 数学,
7 case when max(decode(c1,'英语',c2))<60 then '不及格'
8 when max(decode(c1,'英语',c2))>=80 then '优秀'
9 else '及格' end 英语
10 from temp1;
语文 数学 英语
------ ------ ------
及格 优秀 不及格
11g以上版本可以用pivot函数实现,实现方法类似:
SQL> select * from temp1
2 pivot (
3 max(c2) for c1 in ('语文','数学','英语')
4 );
'语文' '数学' '英语'
---------- ---------- ----------
70 80 58
2 (c1 varchar2(20),
3 c2 number(3));
Table created.
SQL> insert into temp1
2 (c1,c2)
3 select '语文',70 from dual
4 union
5 select '数学',80 from dual
6 union
7 select '英语',58 from dual;
3 rows created.
SQL> select * from temp1;
C1 C2
-------------------- ----------
数学 80
英语 58
语文 70
SQL> select max(decode(c1,'语文',c2)) 语文,
2 max(decode(c1,'数学',c2)) 数学,
3 max(decode(c1,'英语',c2)) 英语
4 from temp1;
语文 数学 英语
---------- ---------- ----------
70 80 58
SQL> select case when max(decode(c1,'语文',c2))<60 then '不及格'
2 when max(decode(c1,'语文',c2))>=80 then '优秀'
3 else '及格' end 语文,
4 case when max(decode(c1,'数学',c2))<60 then '不及格'
5 when max(decode(c1,'数学',c2))>=80 then '优秀'
6 else '及格' end 数学,
7 case when max(decode(c1,'英语',c2))<60 then '不及格'
8 when max(decode(c1,'英语',c2))>=80 then '优秀'
9 else '及格' end 英语
10 from temp1;
语文 数学 英语
------ ------ ------
及格 优秀 不及格
11g以上版本可以用pivot函数实现,实现方法类似:
SQL> select * from temp1
2 pivot (
3 max(c2) for c1 in ('语文','数学','英语')
4 );
'语文' '数学' '英语'
---------- ---------- ----------
70 80 58
- oracle 行转列(转载)
- ORacle函数(转载)
- oracle分页 (转载)
- oracle触发器(转载)
- Oracle函数大全(转载)
- Linux安装oracle(转载)
- oracle数据同步(转载)
- Oracle job 管理(转载)
- 【oracle序列专题】(转载)
- Oracle归档命令(转载)
- oracle函数示例(转载)
- Oracle入门学习心得(转载)
- oracle的dbms_output (转载)
- ORACLE JOB 设置 (转载)
- (转载)oracle开发规范
- Oracle学习笔记(转载)
- ORACLE函数大全(转载)
- Oracle索引总结(转载)
- 单独编译Android源代码中的模块
- ubuntu下安装Apache+PHP+Mysql
- NYOJ p次方求和 南工420
- Java初学者的30个常见问题
- N沟开漏(open-drain)和推挽输出(push-pull)
- oracle 行转列(转载)
- Android中通过json向MySql中读写数据的方法(二)
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- 百度蜘蛛IP分析
- java中判断字符编码的格式以及转码
- wx.ListBox创建列表框
- EasyUI的增删查改(后台ASP.NET)
- dup, dup2一图胜千言
- 1.1系统的安装