oracle分组后伪列,Oracle伪列和伪表和分组函数(row_number,Rank)

oracle的伪列以及伪表

oracle系统为了实现完整的关系数据库功能,系统专门提供了一组成为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象时由我们完成的,而是在我们建立时由Oracle完成的。Oracle目前有以下伪列:

一、伪列:

CURRVAL AND NEXTVAL 使用序列号的保留字

LEVEL 查询数据所对应的层级

ROWID 记录的唯一标识

ROWNUM 限制查询结果集的数量

Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的。对每个表都有一个rowid的伪列,但是表中并不物理存储ROWID列的值。不过你可以像使用其它列那样使用它,但是不能删除改列,也不能对该列的值进行修改、插入。一旦一行数据插入数据库,则rowid在该行的生命周期内是唯一的,即即使该行产生行迁移,行的rowid也不会改变。

ROWNUM是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2,依次类推。如果你用>,>=,=,between...and这些条件,因为从缓冲区或数据文件中得到的第一条记录的rownum为1,则被删除,接着取下条,可是它的rownum还是1,又被删除,依次类推,便没有了数据。

二、伪表

DUAL 表

该表主要目的是为了保证在使用SELECT语句中的语句的完整性而提供的。

一般用于验证函数。例如:

select sysdate,to_char(sysdate,'yyyy-mm-dd HH24:mm:ss') from dual

oracle的几个伪列函数

ORACLE有几个函数专门用来产生伪列的,rownum,rowid,row_number(),rank,dense_rank,lan

1 Connect by 语句

该语句结合伪列rownum或level 可以产生一个结果集.

1. 基本用法:

产生1~~100之间的整数

Select rownum xh from dual connect by rownum<=100;

Select level xh from dual connect by level<=100;

2. 高级用法

2.1.产生所有汉字,汉字内码为:19968~~~40869之间

select t.* from(

select rownum xh,nchr(rownum) hz from dual

connect by rownum<65535

) t

where t.xh between 19968 and 40869

2 rownum按行的顺序自动增加产生

row_number() 给每个组内的不同记录进行排号(分组可不设)

select t.c_group,

t.c_code,

t.c_desc,

row_number() over(PARTITION BY c_group ORDER BY c_desc DESC) rn

from tp_dictionary t

where t.c_group in ('PPSJ001', 'PPSJ002');

0818b9ca8b590ca3270a3433284dd417.png

3 Rank() 按并列情况跨越排序

select t.c_group,

t.c_code,

t.c_desc,

Rank() over( ORDER BY c_code ) rn

from tp_dictionary t

where t.c_group in ('PPGL001', 'PPSJ002');

0818b9ca8b590ca3270a3433284dd417.png

4 Dense_Rank() 按并列情况排序,不跳跃

select t.c_group,

t.c_code,

t.c_desc,

Dense_rank() over( ORDER BY c_code ) rn

from tp_dictionary t

where t.c_group in ('PPGL001', 'PPSJ002');

0818b9ca8b590ca3270a3433284dd417.png

5 Lag对列进行偏移(下面是偏移2列)

select t.c_group,

t.c_code,

t.c_desc,

lag(c_code,2,null) over(PARTITION BY c_group ORDER

BY c_desc asc) rn

from tp_dictionary t

where t.c_group in ('PPGL001', 'PPSJ002');

0818b9ca8b590ca3270a3433284dd417.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux内核分为四个子系统,linux操作系统的内核有哪几个子系统构成,简要说明各子系统的作用...

Linux是一个一体化内核(monolithic kernel)系统。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统&#xff0c;或是GNU/Linux。设备驱动程序可以完全访问硬…

linux运行搜狗拼音,Linux 搜狗输入法的安装(Ubuntu版)

1、首先从搜狗官网下载搜狗输入法Linux版本的安装包2、按ctrl alt T 打开Linux终端3、安装搜狗输入法&#xff1a; sudo dkpg -i xxx.deb, 如果报错&#xff0c;主要是由于两个原因&#xff1a;a、权限不够&#xff0c;可以通过获取root权限&#xff0c;命令‘su’&#xff1b;…

2023年腾讯云轻量应用服务器测评2核2G4M带宽

腾讯云轻量应用服务器测评2核2G4M带宽88元一年&#xff0c;2核CPU、2G内存、3M带宽&#xff0c;腾讯云轻量应用服务器&#xff08;Tencent Cloud Lighthouse&#xff09;是一款开箱即用的云服务器产品&#xff0c;面向轻量应用场景&#xff0c;旨在为中小企业和开发者提供便捷高…

linux 运行unix elf,在Linux中ELF可执行问题

我在Linux上有一些关于ELF可执行文件的奇怪问题.这是我的系统(uname -a)&#xff1a;Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1deb8u2 (2016-01-02) x86_64 GNU/Linux我有以下程序(test.asm),我使用NASM组装它&#xff1a;; program just exits with code 0 using Li…

linux配置远程计算机别名没用,linux – `ssh foo“”`没有加载远程别名?

摘要&#xff1a;为什么会失败$ssh foo R --version | head -n 1bash: R: command not found但这成功了$ssh foo grep -nHe bashrc ~/.bash_profile/home/me/.bash_profile:3:# source the users .bashrc if it exists/home/me/.bash_profile:4:if [ -f "${HOME}/.bashrc&…

linux修改upd53端口,Centos iptables打开端口53

我在我的centos机器上打开端口53时遇到问题,用于DNS配置.这是我的iptables配置-A INPUT -p udp -m udp --sport 53 -j ACCEPT-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT当我运行机器的nmap扫描时,只有端口80显示为打开.我错过了什么吗&#xff1f;编辑&#xff1a;完全ipta…

centos arm linux gcc,CentOS安装arm-linux-gcc交叉编译器

(注&#xff1a;首先需要明确需要安装centos系统的位数&#xff0c;即是32位的还是64位的。)1、下载并解压文件&#xff1a;下载arm-linux-gcc-4.4.3.tgz到任意的目录下&#xff0c;进入这个文件夹输入命令&#xff1a;# tar xvzf arm-linux-gcc-4.4.3.tgz –C / 【解压文件到…

深度linux deepin 12.12,Linux Deepin 12.12 Beta 发布

一、概述两个月前&#xff0c;我们发布了搭载独立开发的“深度桌面环境”的 Linux Deepin 12.12 Alpha 版本。现在&#xff0c;Linux Deepin 12.12 Beta 版本来了&#xff01;Beta 版本集成了 Linux Deepin 两个多月以来的工作成果&#xff0c;带来了许多激动人心的新功能与特性…

linux c 编程手册,Linux C/C++编程手册查阅方法

Linux Programmers Manual & User Commandshttps://www.kernel.org/doc/man-pages/ 搜索框输入epoll调用搜索引擎查找在线搜索查看man手册(比如查epoll),可以直接收藏,方便下次点击搜索:http://global.bing.com/search?qsite:man7.org epollThe Linux Kernel APIhttps://w…

linux tcp连接计算机,计算机基础知识——linux socket套接字tcp连接分析

2016.7.4今天晚上对项目顶层文件(daemon)进行了分析&#xff0c;对其中的TCP连接进行具体的代码级分析。1、需求分析首先得知道我们这里为什么要用TCP连接&#xff0c;我们的整个测试系统是由上位机作为客户端&#xff0c;发送测试文件&#xff0c;测试命令给我们测试程序上&am…

单片机c语言数值转换为字符,将C语言宏定义数值转换成字符串!

hibernate常用API详解根据个人使用Hibernate的经验,介绍一下Hibernate的多种不同的查询和CUD操作,这些东西在日常开发中非常常用,希望对大家有所帮助. 以下示例均以两张表为例:member和userinfo ...Dom4J解析xml文件动态转换为List&lt&semi;Bean&gt&semi;或者M…

定时器驱动数码管c语言程序,74hc595驱动数码管时间程序

74hc595驱动数码管时间程序这里是电路图&#xff1a;下面是51单片机驱动74hc595芯片的程序&#xff1a;#include //包含51单片机的头文件#include#define uint unsigned int#define uchar unsigned char//sbit sin_595 P1^0;//sbit rclk_595 P…

石油大学c语言考试答案,中石油华东2012春《C语言》在线答案

)&#xff1b;! X" l4 d0 m5 T0 A 满分&#xff1a;2 分* }4 x X$ a& t, l% i3. 当对两个字符串进行比较时&#xff0c;应该使用的函数是A. strcat, y, Z- S p t! k! GB. strcmp2 } R% s8 P* Z/ yC. strcpy, i$ q. b5 P8 m j v1 k3 H2 W3 mD. strlen* I B S…

汇编与c语言互调实验报告,C语言和汇编语言的互调.doc

C语言和汇编语言的互调实 验 报 告课程名称&#xff1a; C语言和汇编语言的互调姓名学号组员实验名称C语言和汇编语言的互调实验内容&#xff1a;(实验原理、实验步骤、数据处理、误差分析、程序算法、系统结构等)实验原理C语言参数传递原则1、函数的返回值通过AX寄存器&#x…

c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例

详解C语言用malloc函数申请二维动态数组的实例C语言在程序运行中动态的申请及释放内存十分方便&#xff0c;一维数组的申请及释放比较简单。Sample one#include int main(){char * p(char *)malloc(sizeof(char)*5);//申请包含5个字符型的数组free(p);return 0;}是否申请二维动…

c语言取子程序地址,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*************************************************************************************** 外部中断0实验 *实现现象&#xff1a;下载程序后按下K3按键可以对D1小灯状态取反。注意事项&#xff1a;无。***********************…

c语言中怎么暂停一个一个游戏,求助:最近在linux下用c语言写了一个贪吃蛇程序,有几个问题,第一:贪吃蛇怎么实现暂停,第二:有时候同时输入上下左右中的两个键就会直接游戏结束...

求助&#xff1a;最近在linux下用c语言写了一个贪吃蛇程序&#xff0c;有几个问题&#xff0c;第一&#xff1a;贪吃蛇怎么实现暂停&#xff0c;第二&#xff1a;有时候同时输入上下左右中的两个键就会直接游戏结束/*以下是主要的逻辑代码&#xff0c;还有些.c和.h就没发了*/#i…

android如何调用接口方法,在Android中访问WebService接口的方法

需要引入ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar代码如下://WebService的命名空间static final String namespace "http://impl.service.suncreate.com";//服务器发布的urlstatic final String url http://10.100.3.41/axis2/services/UploadSer…

android view显示隐藏动画效果,Android 根据手势顶部View自动展示与隐藏效果

首先来看一下效果&#xff1a;大体思路如下&#xff1a;总体布局用了一个自定义的ViewGroup&#xff0c;里面包了两个View(top View&#xff0c;bottomView)我在bottomView里放了ViewPager&#xff0c;里面又有Fragment&#xff0c;Fragment里放的是ListView原理&#xff1a;Vi…

android点击地址调用地图,Android 实现点击按钮 调用手机外部地图导航

//弹出Dialog 选择外部地图private void setMap(){final Dialog dianew AlertDialog.Builder(mContext).create();View viewLayoutInflater.from(mContext).inflate(R.layout.dialog_map, null);dia.show();dia.getWindow().setContentView(view);TextView tv_baidu(TextView) …