`
菜菜土人
  • 浏览: 11291 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

oracle 交叉表

阅读更多
在oracle的test表中插入记录
INSERTINTOtestvalues(N'张三',N'语文',60)

INSERTINTOtestvalues(N'李四',N'数学',70)

INSERTINTOtestvalues(N'王五',N'英语',80)

INSERTINTOtestvalues(N'王五',N'数学',75)

INSERTINTOtestvalues(N'王五',N'语文',57)

INSERTINTOtestvalues(N'李四',N'语文',80)

INSERTINTOtestvalues(N'张三',N'英语',100)
交叉表语句的实现:

--用于:交叉表的列数是确定的

selectname,sum(casesubjectwhen'数学'thensourceelse0end)as'数学',

sum(casesubjectwhen'英语'thensourceelse0end)as'英语',

sum(casesubjectwhen'语文'thensourceelse0end)as'语文'

fromtest

groupbyname
用oracle存储过程实现
CREATEORREPLACEPACKAGEBODY"TEST1"as

proceduresp_test(p_cursoroutt_cursor)

is
sqlstrvarchar2(32767);
begin
sqlstr:='selectname,';
--构造字符串
forv_curin(selectdistinctsubjectfromtest)
loop
sqlstr:=sqlstr||'sum(casesubjectwhen'''||v_cur.subject||'''thenscoreelse0end)as'||v_cur.subject||',';
endloop;



sqlstr:=substr(sqlstr,0,length(sqlstr)-1)||'fromtestgroupbyname';

openp_cursorforsqlstr;

end;
end;
分享到:
评论

相关推荐

    oracle交叉表sql

    交叉表 sql http://whitewolf.0fees.net

    Oracle动态交叉表生成

    Oracle动态交叉表生成

    sql交叉表中是使用

    sqlserver中 交叉表的使用 及遇到的一些小问题

    范式下的Oracle数据库设计及其动态交叉表的生成.pdf

    范式下的Oracle数据库设计及其动态交叉表的生成.pdf

    交叉查询经典

    Oracle数据库交叉查询经典 交叉表、行列转换和交叉查询经典

    范式下的Oracle数据库设计及其动态交叉表的生成 (1).pdf

    范式下的Oracle数据库设计及其动态交叉表的生成 (1).pdf

    ORACLE_SQL语句优化技术分析

    选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理...如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.

    oracle语句优化方法.txt

    如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间...

    Oracle Sql 性能优化

    如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. 2、WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的...

    Oracle SQL性能优化

    Oracle SQL性能优化 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ...如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.

    Oracle_SQL优化

    选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理...如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.

    ORACLE_SQL性能优化

    如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间...

    数据分层汇总交叉报表SQL语句实现方法

    在管理系统中,管理人员往往需要对业务数据进行不同需求的分层汇总,并产生各种形式交叉报表。为了实现此类报表,程序员需要构造层次结构非常复杂的SQL语句,甚至使用前台编程工具或其它报表工具来完成。 以下通过二...

    oracle SQL性能优化

    如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间...

    ORACLE优化SQL语句,提高效率

    假如有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表。  (2)WHERE子句中的连接顺序:  Oracle采用自下而上的顺序解析WHERE子句,根据这个原理,表...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。  JARED STILL 从1994年就开始使用...

    Oracle性能提升策略

    如果有3个以上的表连接查询,那就需要选择交叉表(intersectiontable)作为基础表,交叉表是指那个被其他表所引用的表. ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,...

Global site tag (gtag.js) - Google Analytics