在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;
分享到:
相关推荐
交叉表 sql http://whitewolf.0fees.net
Oracle动态交叉表生成
sqlserver中 交叉表的使用 及遇到的一些小问题
范式下的Oracle数据库设计及其动态交叉表的生成.pdf
Oracle数据库交叉查询经典 交叉表、行列转换和交叉查询经典
范式下的Oracle数据库设计及其动态交叉表的生成 (1).pdf
选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理...如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.
如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间...
如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. 2、WHERE子句中的连接顺序: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的...
Oracle SQL性能优化 (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ...如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.
选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理...如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表.
如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间...
在管理系统中,管理人员往往需要对业务数据进行不同需求的分层汇总,并产生各种形式交叉报表。为了实现此类报表,程序员需要构造层次结构非常复杂的SQL语句,甚至使用前台编程工具或其它报表工具来完成。 以下通过二...
如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表. (2) WHERE子句中的连接顺序.: ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间...
假如有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表。 (2)WHERE子句中的连接顺序: Oracle采用自下而上的顺序解析WHERE子句,根据这个原理,表...
有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。 JARED STILL 从1994年就开始使用...
如果有3个以上的表连接查询,那就需要选择交叉表(intersectiontable)作为基础表,交叉表是指那个被其他表所引用的表. ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,...