ORACLE中能不能用一条SQL语句
分别返回EVENTTYPENAME下不同类型的的TOP N呢?
===============补充============
换种类似的简单的来说明一下我的意思:
比如下表这张表,
+----------------------+
| 学生 | 学科 | 成绩 |
+----------------------+
| AA | 语文 | 93 |
+----------------------+
| BB | 语文 | 88 |
+----------------------+
| CC | 语文 | 72 |
+----------------------+
| AA | 数学 | 88 |
+----------------------+
| BB | 数学 | 77 |
+----------------------+
| CC | 数学 | 66 |
+----------------------+
我想返回各科成绩排名前2的记录:
得到:
+----------------------+
| 学生 | 学科 | 成绩 |
+----------------------+
| AA | 语文 | 93 |
+----------------------+
| BB | 语文 | 88 |
+----------------------+
| AA | 数学 | 88 |
+----------------------+
| BB | 数学 | 77 |
+----------------------+
这个语句应该怎么写呢?如果有多少门学科是动态追加的,是不是就不能用UNION来做了,请教一下。
↓ 附件图片删除不了```
- 大小: 14.9 KB
- 描述: ORACLE中能不能用一条SQL语句 [b]分别[/b]返回EVENTTYPENAME下不同类型的的TOP N呢?
- 大小: 14.9 KB
分享到:
相关推荐
Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录
本文将深入探讨如何在C#中利用Oracle自带的驱动来实现批处理,以一次执行多条SQL语句。 首先,我们需要了解Oracle的数据驱动,即ODP.NET(Oracle Data Provider for .NET)。这是Oracle公司为.NET开发者提供的一个...
1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在MySQL中可能需要转换为DECIMAL、TEXT或BLOB。例如,Oracle的NUMBER可以转换为MySQL的DECIMAL或FLOAT,LONG可以转换为TEXT。 2. **分页查询**:Oracle...
假设我们需要获取第n页的数据,每页包含m条记录。那么,首先我们需要确定查询的起始位置(即第一页的起始位置是1,第二页的起始位置是m+1,以此类推)。接下来,我们可以按照以下步骤构建SQL查询语句: 1. **计算...
在Oracle数据库中,由于不直接支持SQL Server中的`SELECT TOP N`语法,用户通常需要采用其他方式来实现相同的功能,即获取数据集的前N条记录。以下将详细讲解如何在Oracle中实现这一操作。 1. 基本的SELECT TOP N...
4. **生成INSERT语句**:工具会遍历所选表的所有记录,为每一条数据生成一个INSERT INTO语句,结构通常为 `INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);` 5. **保存与输出**:生成的INSERT语句会...
`将一条记录插入到Employees表中。 5. **查询数据**: `SELECT`语句是SQL中最常用的命令,用于从数据库中检索信息。基础用法如`SELECT * FROM Employees;`会返回Employees表中的所有记录。通过`WHERE`子句可以添加...
这条语句在mysql中执行的话,语法一点毛病都没有,但是,在oracle上执行一直报错: ORA-00933: SQL 命令未正确结束 后来有了如下的解决办法: /* --一、建表 create or replace table pm_ci ( ci_id varchar2(20...
这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序...
在Oracle数据库中,由于不直接支持SQL Server中的`SELECT TOP N`语法,我们需要采用其他方法来获取表中的前N条记录。以下是如何在Oracle中实现类似功能的详细步骤。 1. **基本方法:使用ROWNUM和ORDER BY** Oracle...
综上所述,Oracle中SQL语句执行效率的查找与解决是一个复杂但系统性的过程。通过对资源消耗、执行计划和常见执行计划类型的深入了解,数据库管理员可以采取有效措施,优化查询性能,确保系统的高效稳定运行。
在Oracle数据库中,日期是数据处理的核心部分,无论是记录事务发生的时间、设定时间窗口进行数据分析,还是设置基于时间的触发器,都离不开对日期的查询和操作。本篇将深入探讨Oracle关于日期的查询语句及其相关知识...
本文将详细介绍如何在 Oracle 中创建一个用于分页查询并返回总记录数的存储过程。 #### 核心概念 1. **存储过程**:存储在数据库中的可编程对象,可以接受参数、执行操作、返回结果。 2. **分页**:通过限制查询...
Oracle 是一个功能强大且复杂的关系数据库管理系统,它提供了多种 SQL 语句来管理和操作数据库。在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义语句(DDL)和其他相关知识...
Oracle数据库是世界上最流行的数据库管理系统之一,它广泛应用于各种规模的企业和组织中,用于存储和管理大量结构化数据。在日常数据库管理和开发过程中,有时我们需要将Oracle数据库中的数据导出为INSERT语句,以便...
Oracle SQL语句是数据库管理与数据查询的重要工具,尤其在大型企业级应用中,Oracle数据库系统因其稳定性、高效性及广泛的功能支持而被广泛应用。本资料包“Oracle SQL语句学习”旨在帮助初学者从基础入手,逐步掌握...
Oracle支持B树索引、位图索引、函数索引等多种类型,选择合适的索引类型对于优化查询至关重要。 7. **子查询**:子查询是嵌套在其他查询中的查询,可以返回单个值、行集或用于比较的表达式。它们可以用于复杂的条件...
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@hostname:port/service_name", "username", "password"); ``` 9. 数据库链接(Database Link):数据库链接允许在不同的Oracle实例之间进行...
在 Oracle 数据库中,CASE 语句是一种非常实用且灵活的条件判断表达式,它可以用于根据不同的条件返回不同的值。CASE 语句可以分为两种类型:简单 CASE 语句和搜索 CASE 语句。 - **简单 CASE 语句**(Simple CASE ...
本文档旨在为初学者提供一个全面且易于理解的学习指南,重点介绍Oracle SQL中最常用的SELECT语句的基本用法。通过本章的学习,读者能够掌握SELECT语句的基础功能,并能执行简单的数据检索任务。 #### 二、SQL ...