| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
1、固定列数的行列转换如 网管论坛bbs_bitsCN_com
student subject grade
--------------------------- 网管论坛bbs_bitsCN_com
student1 语文 80 网管联盟bitsCN_com
student1 数学 70
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 是
1 谁 网管网www_bitscn_com
2 知
2 道 网管下载dl.bitscn.com
3 不
......
转换为
网管u家u.bitsCN.com
1 我是谁
2 知道
3 不
网管联盟bitsCN_com
这一类型的转换必须借助于PL/SQL来完成,这里给一个例子 网管u家u.bitsCN.com
CREATE OR REPLACE FUNCTION get_c2(tmp_c1 NUMBER) 网管u家u.bitsCN.com
RETURN VARCHAR2
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;
END LOOP;
中国网管论坛bbs.bitsCN.com
Col_c2 := rtrim(Col_c2,1); 网管联盟bitsCN_com
RETURN Col_c2;
END;
中国网管联盟bitsCN.com
|
0
|
评论加载中…