`
菜菜土人
  • 浏览: 12481 次
  • 性别: 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

    ### Oracle交叉表SQL知识点解析 #### 一、交叉表(Pivot Table)概念与应用场景 在数据分析领域,交叉表(Pivot Table)是一种常见的数据整理技术,它将原始数据按照特定维度进行重组,使得数据从行式存储变为列式...

    Oracle动态交叉表生成

    Oracle动态交叉表生成是数据库管理中的一个重要概念,尤其在处理范式化数据时。范式化设计是数据库设计的基础,它旨在减少数据冗余、提高数据一致性并降低维护成本。Oracle数据库作为广泛应用的大型关系数据库管理...

    sql交叉表中是使用

    ### SQL Server 中交叉表的使用及遇到的小问题 在 SQL Server 中,交叉表(Pivot Table)是一种将一列中的数据转换为多列的方式,从而实现数据的汇总、分析等功能。这种方式非常适合处理需要进行维度变换的数据场景...

    oracle多表连接技巧

    ### Oracle多表连接技巧详解 #### 一、引言 在Oracle数据库中,多表连接是一种非常实用且常用的技术,它允许用户从多个表中获取数据,并基于特定条件进行匹配和整合。本文将详细介绍Oracle中多表连接的各种类型及其...

    数据库的交叉表、左链接

    在SQL中,可以使用SQL的CASE语句或PIVOT操作(某些数据库系统如Oracle支持)来实现交叉表查询。例如,如果我们有一个销售数据表,包含产品、地区和销售额信息,我们可能想要按地区展示每个产品的销售额。通过交叉表...

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

    在Oracle环境下,可以利用SQL查询语句,通过JOIN操作来动态生成交叉表。这种方法结合多个表的数据,形成新的视图或报表,满足用户按特定方式查看数据的需求。例如,将学生表、科目表、成绩表等通过JOIN操作连接,...

    SQL动态交叉表,希望对SQL程序员有帮助

    在SQL编程中,动态交叉表查询是一种非常实用的技术,它能够帮助我们以表格形式展示多维度数据,使得数据更易理解和分析。交叉表,又称作透视表或转置表,通常用于将行与列的数据位置互换,或者将某一列的数据作为新...

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

    《范式下的Oracle数据库设计及其动态交叉表的生成》这篇文献主要探讨了在数据库设计中遵循范式的重要性,以及如何在Oracle数据库中实现动态交叉表的生成。文章以提高数据库性能和数据完整性为目标,深入剖析了数据库...

    oracle 多表联接查询

    通过本文的介绍,我们了解到Oracle中的多表联接查询包括等值联接、非等值联接、外联接、自联接、交叉联接和自然联接等多种形式。每种联接方式都有其适用场景,掌握这些技巧对于进行复杂的数据分析和处理非常有用。在...

    oracle多表查询PPT课件.pptx

    Oracle数据库的多表查询是数据库操作中的核心技能之一,它涉及到如何从两个或更多个相关表中检索数据。本章的PPT课件主要讲解了如何进行多表查询,包括等值连接、非等值连接、外连接以及自连接等多种连接类型。 1. ...

    交叉查询经典

    在 Oracle 数据库中,我们可以使用行列转换和交叉查询来生成交叉表。例如,我们可以使用以下 SQL 语句来生成交叉表: select name,sum(case when a.subject='语文' then result else null end) as "语文", sum...

    基于动态交叉表的Web多维分析系统设计与实现.pdf

    该方法利用多维分析建立交叉表视图,并通过Oracle数据库的PL/SQL实现视图的动态刷新。此外,还采用了Struts框架和JFreeChart等开源工具来实现多维分析数据在Web上的动态更新。 1. **建立交叉表视图**:使用多维分析...

    oracle 多表查询

    在 Oracle 中,多表查询可以使用不同的连接类型,包括内连接(inner join)、左连接(left join)、右连接(right join)、全连接(full join)和交叉连接(cross join)。 1. 内连接(inner join) 内连接是指...

    Oracle中对两个数据表交集查询简介

    本文主要探讨如何在Oracle中找到两个数据表的交集,即找出存在于两个表中的共同数据。交集查询对于数据分析和数据比对至关重要,尤其在合并或清理重复数据时。 首先,我们来看使用`INTERSECT`操作符的方法。`...

    Jfreechart动态交叉表的生成与应用.pdf

    本文主要探讨了如何在Java与Oracle环境下生成动态交叉表(Crosstab),并分析了其在实际应用中的重要性和具体实施方法。数据库设计时需遵循数据范式的要求以确保数据的一致性和完整性,但在实际使用过程中,为了满足...

    oracle多表查询优化

    - **示例2**:当涉及到三个或更多表的连接查询时,应选择交叉表作为基础表。交叉表是指那些被其他表所引用的表。这种策略有助于减少不必要的排序和合并操作,从而提高查询效率。 通过以上讨论可以看出,Oracle多表...

    Oracle BI Publisher

    Template Builder 允许用户插入数据字段、数据驱动的表格和交叉表、数据驱动的图表等_into_ RTF 模板中。用户可以预览和验证 RTF 模板,以确保模板的正确性。 数据字段 在 Template Builder 中,用户可以插入数据...

    oracle语句优化方法.txt

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

    Oracle discover基本操作手册

    页明细交叉表结合了交叉表和页明细表的特点,提供多层次的数据分析,支持行维、列维、页维的综合运用,适用于复杂的数据挖掘和高级分析场景。 ### 四、总结 Oracle Discoverer以其直观的界面和强大的数据处理能力...

Global site tag (gtag.js) - Google Analytics