`
vortexchoo
  • 浏览: 67543 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ORCL查询----第N

    博客分类:
  • orcl
sql 
阅读更多
<!--摘要-->

例如上表(stu)中显示的内容,需要查询sma列第三高的SQL语句如下 select a.* from (select rank() over(order by sma desc) as rk,stu.* from stu)a where a.rk=3; 查询结果如下 通过浏览全表不难发现,在表中sma值第三高的为20,并且不只是一个。结果显示正确。 rank() 针对over()函数中的排列,排序顺序产生对应over规则的的阶层,如果只执行 select rank() over(order by sma desc) as rk,stu.* from stu,那么结果集如下。 发现第一列也就是RK(rank产生阶层的列)已经针对over()函数中的条件产生了阶层值,我们只需要取出对应阶层值的数据即可。无需关心重复问题。 如果不考虑重复,只考虑是第几个 select a.* from (select row_number() over(order by sma desc) as rk,stu.* from stu)a where a.rk=3; select * from(select t.*,rownum nu from (select * from stu order by sma)t)e where e.nu=3; 两种写法都OK,第一种会更效率、

查看原图<!--如果有语音信息,显示数量-->
<!--详情-->
图片

例如上表(stu)中显示的内容,需要查询sma列第三高的SQL语句如下

select a.* from (select rank() over(order by sma desc) as rk,stu.* from stu)a where a.rk=3;

查询结果如下

图片
通过浏览全表不难发现,在表中sma值第三高的为20,并且不只是一个。结果显示正确。

 

rank() 针对over()函数中的排列,排序顺序产生对应over规则的的阶层,如果只执行

select rank() over(order by sma desc) as rk,stu.* from stu,那么结果集如下。

图片发现第一列也就是RK(rank产生阶层的列)已经针对over()函数中的条件产生了阶层值,我们只需要取出对应阶层值的数据即可。无需关心重复问题。

如果不考虑重复,只考虑是第几个

select a.* from (select row_number() over(order by sma desc) as rk,stu.* from stu)a where a.rk=3;

 select * from(select t.*,rownum nu from (select * from stu order by sma)t)e where e.nu=3;

两种写法都OK,第一种会更效率

分享到:
评论

相关推荐

    Oracle RAC日常维护指令

    - 示例: `$ srvctl status instance -d orcl -i orcl2` - **说明**: 指定实例名称来查看其状态。 - **输出示例**: ```bash Instance orcl2 is running on node linux2 ``` 3. **检查服务状态**: - **命令**...

    创建oracle的后台服务OracleServiceORCL

    oradim -NEW -SID ORCL -STARTMODE manual -PFILE "D:\oracle\product\10.1.0\Db_1\database\SPFILEORCL.ORA" 这时,系统会提示 instance created,到服务里查看,出现了 OracleServiceORCL 的服务(默认已启动)。...

    Sqoop导Oracle数据到Hive

    sqoop import --connect jdbc:oracle:thin:@192.168.91.4:1521:ORCL --username JIAOTONG --password dsjyjy123456 --table HADOOP_EVENT_INFO --hive-import -m 1 --fields-terminated-by '\n' --lines-terminated-...

    Oracle_RAC日常管理

    - `$ srvctl status instance -d orcl -i orcl1` 4. **检查特定节点的应用程序状态**: - 使用 `srvctl status nodeapps -n &lt;hostname&gt;` 来查看特定节点上运行的所有应用程序的状态。例如: - `$ srvctl status ...

    Oracle RAC日常基本维护命令

    - 这里查询的是`orcl2`实例的状态。 3. **查询服务在数据库全局命名服务中的状态** - **命令**: `$srvctl status service -d orcl -s orcltest` - **输出示例**: ``` Service orcltest is running on instance...

    oracle rac日常基本维护命令

    该 SQL 命令用于查询属于指定磁盘组 `ORCL_DATA1` 的所有 ASM 磁盘。 **示例输出**: ``` PATH ---------------------------------- ORCL:VOL1 ORCL:VOL2 ``` 表明 `ORCL_DATA1` 磁盘组包含 `ORCL:VOL1` 和 `ORCL:...

    Oracle Rac管理常用命令

    - `srvctl start|stop|status instance -d orcl -n rac01`:针对特定节点操作实例。 9. **监听器管理**: - `srvctl config listener`:查看监听器配置。 - `srvctl start|stop|status listener`:操作所有节点...

    oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm sqlplus安装包集合

    ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = *IP*)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = *SID*) ) ) 1.5 配置环境变量 #vim ~/.bashrc --根目录下为全局...

    oracle_rac日常基本维护命令

    第一个命令查看ASM实例在节点上的运行状态,而第二个命令展示ASM实例的配置信息。 查询集群中所有正在运行的实例,可以使用SQL查询: ``` SELECT inst_id, instance_number, instance_name FROM gv$instan ORDER BY...

    ORCL资料 关于护具哭的应用与学习

    ORCL,通常指的是Oracle数据库,这是一个广泛使用的、高性能的关系型数据库管理系统。本文将深入探讨如何在Oracle数据库中应用E-R(实体-关系)模型,以及如何通过E-R图进行数据库设计。 E-R模型是一种用于描述现实...

    linux安装Oracle-19c

    1. **修改`oratab`文件**:将`/etc/oratab`中的条目从“N”改为“Y”,表示数据库应该在启动时启动。 2. **创建启动脚本**:创建一个名为`/usr/bin/oracle.sh`的脚本来启动Oracle的服务,包括`lsnrctl start`和`...

    ORACLE RAC维护手册

    2. **单个实例状态**:`srvctl status instance`用于检查特定实例的状态,如`srvctl status instance -d orcl -i orcl2`会显示orcl2实例在哪个节点上运行。 3. **全局命名服务状态**:`srvctl status service`用于...

    Oracle RAC 删除节点配置手册

    - **操作用户**:以 grid 用户身份在第一个节点上运行命令。 - **命令示例**: ```shell [grid@ractest1~]$ srvctl status listener [grid@ractest1~]$ srvctl disable listener -l LISTENER -n ractest3 [grid@...

    数据库笔记

    - 完整实例名称:Orcl。 - 系统账户:sys。 - 系统密码:sys。 - 数据库实例的启动与关闭: - 通过服务管理器(services.msc)可以查看和控制Oracle服务的状态。 - Oracle服务通常包括数据库服务(如...

    手工建库(简单过程).txt

    orcl:/u01/app/oracle/product/11.2.0/db_1:N ``` 通过以上步骤,您已经成功地完成了Oracle数据库的手工创建过程。这不仅有助于加深对Oracle数据库架构的理解,同时也是日常维护工作中必不可少的一项技能。

    SQLserver2012链接Oracle数据库操作说明.docx

    @datasrc = N'ORCL'; -- 数据源, 可通过 "ora10g" network "admin" tnsnames.ora 查看 ``` 2. **添加链接服务器登录信息** - 添加链接服务器的登录信息。 ```sql EXEC sp_addlinkedsrvlogin 'OraclePolice', ...

    oracle 自启动

    echo -n "Shutting down oracle: " su - oracle -c "dbshut" rm -f /var/lock/subsys/oracle echo "OK" ;; *) echo "Usage: `basename $0` {start|stop}" exit 1 ;; esac exit 0 ``` 此脚本定义了两个主要...

    Oracle RAC 资料收集日常基本维护命令

    Service orcltest is running on instance(s) orcl2, orcl1 ``` 2. **查询单个实例的状态**: ```bash $ srvctl status instance -d orcl -i orcl2 ``` 这条命令可以查看特定实例`orcl2`的状态。例如: ```...

    NC63安装建库脚本

    - 数据文件路径:'E:\oracle\product\10.1.0\oradata\orcl\nnc_data01.dbf' - 初始大小:100M - 自动扩展:每次扩展50M - 管理方式:本地管理 - 块大小:256K 2. **NNC_DATA02**: - 数据文件路径:'E:\...

Global site tag (gtag.js) - Google Analytics