有什么简单的语句可以将竖表转成横表?(详见例子) 对应的item数目有限的话可以使用decode 实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 具体写法?(要求是先insert了所有no之后,进行update) http://expert.csdn.net/Expert/topicview.asp?id=1211043 [Q]如何实现行列转换 [A]1、固定列数的行列转换如student subject grade---------------------------student1 语文 80student1 数学 70student1 英语 60student2 语文 90student2 数学 80student2 英语 100……转换为 语文 数学 英语student1 80 70 60student2 90 80 100……语句如下:select student,sum(decode(subject,’语文’, grade,null)) “语文”, sum(decode(subject,’数学’, grade,null)) “数学”,sum(decode(subject,’英语’, grade,null)) “英语” from table group by student2、不定列行列转换如c1 c2--------------1 我1 是1 谁2 知2 道3 不……转换为1 我是谁2 知道3 不这一类型的转换必须借助于PL/SQL来完成,这里给一个例子CREATE OR REPLACE FUNCTION get_c2(tmp_c1 NUMBER) RETURN VARCHAR2 IS Col_c2 VARCHAR2(4000); BEGINFOR cur IN (SELECT c2 FROM t WHERE c1=tmp_c1) LOOP Col_c2 := Col_c2||cur.c2; END LOOP; Col_c2 := rtrim(Col_c2,1);RETURN Col_c2; END;/ Clob大对象 oracle 11g有人使用吗? 如何比较不同数据库服务器相同表的表结构? (求助)Oracle 9i ---->SQL server 在线待解决一个关于imp的问题! 如何查询第二条记录? 过程里怎么事务处理. oracle8i中的DBA studio是在哪里安装的?为什么我安装的oracle8i里找不到它? 有关自动撤销管理相关的问题 如何使用临时表? delphi中访问oracle数据库,不安装oracle client,要怎么做? select into 语句中能否用子查询?
[A]1、固定列数的行列转换
如
student subject grade
---------------------------
student1 语文 80
student1 数学 70
student1 英语 60
student2 语文 90
student2 数学 80
student2 英语 100
……
转换为
语文 数学 英语
student1 80 70 60
student2 90 80 100
……
语句如下:
select student,sum(decode(subject,’语文’, grade,null)) “语文”,
sum(decode(subject,’数学’, grade,null)) “数学”,
sum(decode(subject,’英语’, grade,null)) “英语”
from table
group by student2、不定列行列转换
如
c1 c2
--------------
1 我
1 是
1 谁
2 知
2 道
3 不
……
转换为
1 我是谁
2 知道
3 不
这一类型的转换必须借助于PL/SQL来完成,这里给一个例子
CREATE OR REPLACE FUNCTION get_c2(tmp_c1 NUMBER)
RETURN VARCHAR2
IS
Col_c2 VARCHAR2(4000);
BEGIN
FOR cur IN (SELECT c2 FROM t WHERE c1=tmp_c1) LOOP
Col_c2 := Col_c2||cur.c2;
END LOOP;
Col_c2 := rtrim(Col_c2,1);
RETURN Col_c2;
END;
/