网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 开发技术 > 在oracle中进行列行转换-开发技术  

在oracle中进行列行转换-开发技术

2008-06-26  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

        1、固定列数的行列转换如 网管论坛bbs_bitsCN_com

        student subject grade
        --------------------------- 网管论坛bbs_bitsCN_com

        student1 语文 80 网管联盟bitsCN_com

        student1 数学 70

网管bitscn_com

        student1 英语 60 网管下载dl.bitscn.com

        student2 语文 90 网管u家u.bitscn@com

        student2 数学 80 网管论坛bbs_bitsCN_com

        student2 英语 100 中国网管论坛bbs.bitsCN.com

        转换为

网管bitscn_com

        语文 数学 英语

网管联盟bitsCN@com

        student1 80 70 60 网管网www_bitscn_com

        student2 90 80 100

网管论坛bbs_bitsCN_com

        语句如下: 网管网www_bitscn_com

        select student,sum(decode(subject,'语文', grade,null)) "语文",

中国网管论坛bbs.bitsCN.com

        sum(decode(subject,'数学', grade,null)) "数学",

网管网www.bitscn.com

        sum(decode(subject,'英语', grade,null)) "英语" 网管u家u.bitscn@com

        from table

中国网管论坛bbs.bitsCN.com

        group by student 网管网www_bitscn_com

        2、不定列行列转换如

网管下载dl.bitscn.com

        c1 c2
        --------------
        1 我 网管下载dl.bitscn.com

        1 是

网管u家u.bitsCN.com

        1 谁 网管网www_bitscn_com

        2 知

网管bitscn_com

        2 道 网管下载dl.bitscn.com

        3 不
        ......
        转换为

网管u家u.bitsCN.com

        1 我是谁

网管bitscn_com

        2 知道

中国网管联盟bitsCN.com

        3 不

网管联盟bitsCN_com

        这一类型的转换必须借助于PL/SQL来完成,这里给一个例子 网管u家u.bitsCN.com

        CREATE OR REPLACE FUNCTION get_c2(tmp_c1 NUMBER) 网管u家u.bitsCN.com

        RETURN VARCHAR2

网管网www_bitscn_com

        IS

网管bitscn_com

        --用于返回值 网管论坛bbs_bitsCN_com

        Col_c2 VARCHAR2(4000); 网管下载dl.bitscn.com

        BEGIN 网管bitscn_com

        FOR cur IN (SELECT c2 FROM t WHERE c1=tmp_c1) LOOP 网管u家u.bitsCN.com

        Col_c2 := Col_c2||cur.c2;

网管联盟bitsCN@com

        END LOOP;

中国网管论坛bbs.bitsCN.com

        Col_c2 := rtrim(Col_c2,1); 网管联盟bitsCN_com

        RETURN Col_c2;

中国网管联盟bitsCN.com

        END;

中国网管联盟bitsCN.com


TAGs   转换   进行       Col_c2   数学   英语   语文   student2   subject      
 上一篇:oracle存储过程详解-开发技术   下一篇:ORACLE用户常用数据字典查询-开发技术
在oracle中进行列行转换-开发技术 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: