Oracle SQL精妙SQL语句讲解
日期:2008年2月26日 作者: 查看:[大字体 中字体 小字体]-
--行列转换 行转列
DROP TABLE t_change_lc;
CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);INSERT INTO t_change_lc
SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal FROM dual CONNECT BY ROWNUM <= 4
UNION
SELECT '002' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal FROM dual CONNECT BY ROWNUM <= 4;SELECT * FROM t_change_lc;
SELECT a.card_code,
SUM(decode(a.q, 1, a.bal, 0)) q1,
SUM(decode(a.q, 2, a.bal, 0)) q2,
SUM(decode(a.q, 3, a.bal, 0)) q3,
SUM(decode(a.q, 4, a.bal, 0)) q4
FROM t_change_lc a
GROUP BY a.card_code
ORDER BY 1;--行列转换 列转行
DROP TABLE t_change_cl;
CREATE TABLE t_change_cl AS
SELECT a.card_code,
SUM(decode(a.q, 1, a.bal, 0)) q1,
SUM(decode(a.q, 2, a.bal, 0)) q2,
SUM(decode(a.q, 3, a.bal, 0)) q3,
SUM(decode(a.q, 4, a.bal, 0)) q4
FROM t_change_lc a
GROUP BY a.card_code
ORDER BY 1;SELECT * FROM t_change_cl;
SELECT t.card_code,
t.rn q,
decode(t.rn, 1, t.q1, 2, t.q2, 3, t.q3, 4, t.q4) bal
FROM (SELECT a.*, b.rn
FROM t_change_cl a,
(SELECT ROWNUM rn FROM dual CONNECT BY ROWNUM <= 4) b) t
ORDER BY 1, 2;--行列转换 行转列 合并
DROP TABLE t_change_lc_comma;
CREATE TABLE t_change_lc_comma AS SELECT card_code,'quarter_'q AS q FROM t_change_lc;SELECT * FROM t_change_lc_comma;
SELECT t1.card_code, substr(MAX(sys_connect_by_path(t1.q, ';')), 2) q
FROM (SELECT a.card_code,
a.q,
row_number() over(PARTITION BY a.card_code ORDER BY a.q) rn
FROM t_change_lc_comma a) t1
START WITH t1.rn = 1
CONNECT BY t1.card_code = PRIOR t1.card_code
AND t1.rn - 1 = PRIOR t1.rn
GROUP BY t1.card_code;--行列转换 列转行 分割
DROP TABLE t_change_cl_comma;
CREATE TABLE t_change_cl_comma AS - [1] [2] [3] [4] [5] [6] 下一页
-
- Oracle SQL精妙SQL语句讲解 相关文章:
- ·Oracle触发器详细介绍
- ·VMware下RedHat安装Oracle 9i RAC全攻略
- ·Oracle的SQL*PLUS命令的使用大全
- ·详细介绍ORACLE sqlplus命令
- ·ORACLE备份&恢复案例--ORACLE BACKUP&RESTORE SCHEME
- ·ORACLE傻瓜手册长篇连载
- ·Oracle的SQL语句执行效率问题查找与解决方法
- ·Oracle常用的OCI函数
- ·Oracle数据库检查死锁的sql
- ·Oracle 游标使用大全
- Oracle SQL精妙SQL语句讲解 相关软件
- ·Oracle9i服务器(专家版优化工具) V9.6.2
- ·OracleUNIX安装手册
- ·Oraspeed for Oracle V3.2.7
- ·青云oracle工具 V2.1
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:sql 2005 express 远程访问和sa密码的问题
精品推荐
热点TOP10
- ·9istatspack使用手册
- ·Oracle触发器详细介绍
- ·VMware下RedHat安装Oracle 9i RAC全攻略
- ·Oracle的SQL*PLUS命令的使用大全
- ·详细介绍ORACLE sqlplus命令
- ·数据库备份与恢复测试(8)
- ·请问这是怎么回事??如何解决
- ·ORACLE备份&恢复案例--ORACLE BACKUP&RESTORE SCHEME
- ·ORACLE傻瓜手册长篇连载
- ·Oracle的SQL语句执行效率问题查找与解决方法
- ·Oracle常用的OCI函数
- ·Oracle数据库检查死锁的sql
- ·Oracle 游标使用大全
- ·用正则表达式函数验证身份证号码合法性
- ·自己整理的OCI文档,抛砖引玉
- ·ORA-00257: archiver error. Connect internal only, until freed.
- ·ORACLE UPDATE 语句语法与性能分析的一点看法
- ·oracle中pro*c的学习
- ·有关ORA600错误的参数的解释文档
- ·我的oracle笔记四(DBA管理)
特别推荐
- ·ORACLE UPDATE 语句语法与性能分析的一点看法
- ·Oracle SQL精妙SQL语句讲解
- ·Oracle环境下APACHE虚拟服务器如何设置
- ·常见Oracle HINT的用法
- ·ORA-00257: archiver error. Connect internal only, until freed.
- ·oracle的update问题
- ·小议索引的使用
- ·oracle产品服务和技术级别介绍,OrACLE服务
- ·Oracle 数据类型
- ·Oracle数据库检查死锁的sql
- ·怎样将冷备份移植到另一台Solaris机器上
- ·Oracle 动态SQL返回单条结果和结果集
- ·手动建立 Oracle9i 数据库
- ·Oracle内存结构(二)----Shared Pool的详细信息
- ·DELPHI 调用 Oracle 存储过程并返回数据集的例子.
- ·关于block中行数据的存储与空间重组三
- ·Sybase及SQL Anywhere SQL语句小结
- ·ORACLE备份&恢复案例--ORACLE BACKUP&RESTORE SCHEME
- ·Oracle ERP 11业务调研报告-AP应付帐
- ·在 Oracle 数据库上构建 .NET 应用程序
