oracle将查询结果声明为伪表,Oracle的伪列和伪表

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

样表:

SQL> select * from stu_score;

STU_NO     SUB_NO      SCORE

---------- ---------- ----------

1          1         99

2          1         98

3          1        100

4          2         88

5          2         87

6          2         88

7          3         99

8          3         88

9          3        100

9 rows selected.

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

SQL> select rownum, stu_score.* from stu_score;

ROWNUM     STU_NO     SUB_NO      SCORE

---------- ---------- ---------- ----------

1          1          1         99

2          2          1         98

3          3          1        100

4          4          2         88

5          5          2         87

6          6          2         88

7          7          3         99

8          8          3         88

9          9          3        100

9 rows selected.

rowid内部ID号,这个是真正存在表中的

SQL> select rownum from dual connect by rownum<10;

ROWNUM

----------

1

2

3

4

5

6

7

8

9

10

10 rows selected.

这个是一个比较有用的语句

SQL> select to_date('2006-03-31','yyyy-mm-dd')+rownum rn from dual connect by ro

wnum < 10;

RN

--------------

01-4月 -06

02-4月 -06

03-4月 -06

04-4月 -06

05-4月 -06

06-4月 -06

07-4月 -06

08-4月 -06

09-4月 -06

10-4月 -06

10 rows selected.

SQL> select rowid, stu_score.* from stu_score;

ROWID                  STU_NO     SUB_NO      SCORE

------------------ ---------- ---------- ----------

AAAMGBAAQAAAEdqAAA          1          1         99

AAAMGBAAQAAAEdqAAB          2          1         98

AAAMGBAAQAAAEdqAAC          3          1        100

AAAMGBAAQAAAEdqAAD          4          2         88

AAAMGBAAQAAAEdqAAE          5          2         87

AAAMGBAAQAAAEdqAAF          6          2         88

AAAMGBAAQAAAEdqAAG          7          3         99

AAAMGBAAQAAAEdqAAH          8          3         88

AAAMGBAAQAAAEdqAAI          9          3        100

9 rows selected.

给每个组内的不同记录进行排号,如果要查询每门课程成绩的前两名的记录,就可以用这个实现

SQL> SELECT stu_no,sub_no,score,row_number() over(PARTITION BY sub_no ORDER BY s

core DESC) rn FROM stu_score

2  ;

STU_NO     SUB_NO      SCORE         RN

---------- ---------- ---------- ----------

3          1        100          1

1          1         99          2

2          1         98          3

4          2         88          1

6          2         88          2

5          2         87          3

9          3        100          1

7          3         99          2

8          3         88          3

9 rows selected.

SQL> select * from

2  (SELECT stu_no,sub_no,score,row_number() over(PARTITION BY sub_no ORDER BY

score DESC) rn FROM stu_score)

3  WHERE rn<3;

STU_NO     SUB_NO      SCORE         RN

---------- ---------- ---------- ----------

3          1        100          1

1          1         99          2

4          2         88          1

6          2         88          2

9          3        100          1

7          3         99          2

6 rows selected.

与上面类似,略与不同,一看就知道了

SQL> SELECT stu_no,sub_no,score,RANK() over(PARTITION BY sub_no ORDER BY score D

ESC) rn FROM stu_score

2  ;

STU_NO     SUB_NO      SCORE         RN

---------- ---------- ---------- ----------

3          1        100          1

1          1         99          2

2          1         98          3

4          2         88

1         6          2         88

1         5          2         87

3         9          3        100          1

7          3         99          2

8          3         88          3

9 rows selected.

与RANK类似,可以看出区别来

SQL> SELECT stu_no,sub_no,score,dense_RANK() over(PARTITION BY sub_no ORDER BY s

core DESC) rn FROM stu_score;

STU_NO     SUB_NO      SCORE         RN

---------- ---------- ---------- ----------

3          1        100          1

1          1         99          2

2          1         98          3

4          2         88

1         6          2         88

1         5          2         87

2

9          3        100          1

7          3         99          2

8          3         88          3

9 rows selected.

对列进行偏移

SQL> SELECT stu_no,sub_no,score,lag(score,1,null) over(PARTITION BY sub_no ORDER

BY score DESC) rn FROM stu_score

2  ;

STU_NO     SUB_NO      SCORE         RN

---------- ---------- ---------- ----------

3          1        100

1          1         99        100

2          1         98         99

4          2         88

6          2         88         88

5          2         87         88

9          3        100

7          3         99        100

8          3         88         99

9 rows selected.

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

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

相关文章

肖像:作家艺术家之一

比利时作家 Sus Van Elzen&#xff0c;作品多以政治为内容。最近在考察北京古代建筑的历史。蒙古族舞蹈家 康绍辉。著名作品《鹰舞》。现居香港。画家 张鉴墙。著名作品《待到山花烂漫时》系列。现居宋庄。右为比利时女摄影师 玛瑞亚。从事“图片散文”创作。

钓鱼趣话

垂钓需要耐性和专注。两个孩子一开始还算做到了。眼前是一大片亮晶晶却又深不可测的湖水。而两只小狗看着比人快乐得多。看见主人有点不耐烦&#xff0c;小狗在翘首盼望鱼咬钩呢。小狗扑通跳进湖里&#xff0c;边游边说&#xff1a;实在钓不上鱼&#xff0c;把我钓上来吧。看见…

oracle rac em cluster name,ORACLE 11G RAC重建EM问题

前段时间出现了一个问题&#xff0c;就是重启一个RAC节点时突然报恢复区大小不足的问题&#xff0c;查了一下应该没有问题&#xff0c;已经修改为500G了&#xff0c;应该还有200多G的剩余空间的&#xff0c;怎么一下就没了&#xff0c;而且删除了里面不少文件&#xff0c;并且用…

玛丽莲·梦露从未公开的照片

世界著名的摄影师伊夫 阿诺德最近将几张玛丽莲梦露从未公开的照片限量分发给了英国几个选定的画廊。 已经94岁高龄的阿诺德当年与梦露建立了互相信任的关系&#xff0c;拍了许多反映梦露私秘生活的照片&#xff0c;但她很少将这些照片公之于众&#xff0c;借助曝露名人的隐私来…

让孩子尽快了解这个世界

或许是小时候没怎么看过好的儿童读物的缘故&#xff0c;我一直非常偏好这类书籍&#xff0c;尤其是那些图文并貌的科普类图书&#xff0c;让我时常像孩子似地爱不释手。比较起来&#xff0c;我更喜欢外国引进版的&#xff0c;因为它们更讲究趣味&#xff0c;不枯燥&#xff0c;…

php去掉最后一个,号,织梦当前位置去除最后一个''符号

dede提供了面包屑的功能。但是最后面总会带一个>符号。甚是烦人。目标干掉它。第一种解决方法&#xff1a; 1. 在系统参数里面修改这个符号。第二种解决方法&#xff1a; 2. 使用截子符&#xff0c;runphp操作(网上百度很多&#xff0c;遗憾是我没有试验成功)。第三种解…

在东岸酒吧听爵士乐

东岸酒吧在后海的东岸。与西岸不同&#xff0c;西岸过于华丽、喧嚣、暧昧&#xff0c;甚至颓废。萨克斯手最受欢迎。电贝斯手可能是个新手&#xff0c;有些拘谨&#xff0c;但是很认真。演奏了格士温的《夏日时光》&#xff08;SUMMERTIME&#xff09;。原来听的多为人声的&…

2006年我眼中最有影响力的25部中外恐怖悬疑小说推荐(一)

此推荐属于一家之言&#xff0c;根据个人喜好和阅读经验。当然也些许参考了当当网和卓越网图书销售情况以及同行的意见。 近几年国内恐怖悬疑小说发展很快&#xff0c;已经成为类型小说中最引人注目的创作形式和文学现象。2006年是国内恐怖悬疑小说重要的一年&#xff0c;也是优…

oracle空值判断 =,Oracle,sql server的空值(null)判断

Oracle,sql server的空值(null)判断sql server替换null:isnull(arg,value)如:select isnull(price,0.0) from orders ,如果price为null的话&#xff0c;用0.0替换与null比较: is not null&#xff0c;is null如 select * from orders where pric…

2006年我眼中最有影响力的25部中外恐怖悬疑小说推荐(二)

6、《亡者永生》 那多著 接力出版社 2006年5月出版 一种可怕的病毒&#xff0c;传染、变异、扩散。人类从此是否进入一场浩劫&#xff1f;作者将《山海经》中一种名为“太岁”的生物引入到现实人群中&#xff0c;表达对死亡与永生的看法。有评论说这本书写得过于血腥&#x…

2006年我眼中最有影响力的25部中外恐怖悬疑小说推荐(三)

9、《幽灵信箱》 余以键 著 中国广播电视出版社2006年1月出版 在恐怖小说里死人可以给活人发邮件&#xff0c;也可以为活人买墓地。《幽灵信箱》正是说的这样一个离奇的故事。历史的剩余物如此地折磨着现在的人&#xff0c;使我们对死人不得不表达敬畏。余以键善于将恐怖氛…

Oracle数据库事务回滚和提交,数据库 事务提交和回滚

事务 - (transaction / tx)原子性操作性(不可以分割的操作) - 要么全做, 要么全不做事务的特点 - ACID 特性A - atomicity 原子性 : 不可分割, 要么成功要么全失败C - Consistency 一致性: 事务前后数据状态要保持一致, 总数一致I - Isolation - 隔离性 : 多个事务不能…

2006年我眼中最有影响力的25部中外恐怖悬疑小说推荐(四)

12、《鬼葬礼》 吉振宇著 朝华出版社2006年3月出版 周正赶去参加同学程菲的葬礼&#xff0c;但葬礼并没有如期举行&#xff0c;程菲的遗体神秘失踪了&#xff0c;躺在死者位子上的是另一位同学的尸体。周正无意中拨通了死者的手机&#xff0c;却听到亡者的声音说&#xff1a;“…

2006年我眼中最有影响力的25部中外恐怖悬疑小说推荐(五)

13、《第二类死亡》 大袖遮天著 北方文艺出版社2006年10月出版 “两个涉世未深的女孩同租一套貌似普通的房屋&#xff1b;陌生女人的长发倏然出现&#xff0c;浴室的镜面上刻着奇怪的字句&#xff0c;手中的热水忽然变得冰凉&#xff0c;在她们的房间里似乎还居住着另一个人…

oracle多次发运,Oracle EBS-SQL (OM-4):检查发运网络.sql

selectmsn.FROM_ORGANIZATION_CODE开始库存组织,msn.FROM_ORGANIZATION_NAME 开始库存名称,msn.TO_ORGANIZATION_CODE结束库存组织,msn.TO_ORGANIZATION_NAME结束库存名称,decode(msn.INTRANSIT_TYPE,1,‘直接‘,2,‘在途‘,‘未知‘)转换类型,k1.CONCATENATED_SEGMENTS转帐贷项…

2006年我眼中最有影响力的25部中外恐怖悬疑小说推荐(六)

14、《鬼话连篇之魅宅》 庄秦 著 北方文艺出版社2006年12月 这是一本鬼故事的合集&#xff0c;经过作者精心的编辑和讲述&#xff0c;类似《十日谈》的结构&#xff0c;一天讲一个&#xff0c;一个月正好30个故事。鬼故事又称“段子”&#xff0c;在民间、网络中盛行&…

linux php运行用户名和密码,Linux实例(一)使用用户名密码验证连接Linux

本篇文章给大家带来的内容是关于使用用户名密码验证连接Linux&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。如果您使用的是 SSH 密钥对&#xff0c;请参考 使用SSH密钥对连接Linux实例。如果您要使用 ECS 控制台的管理终端…

与草原有关的几张照片

这是辉腾锡勒的云对太阳的一次围剿&#xff0c;很惨烈。早晨的敖包是最先见到太阳的地方。五条腿的马。

《银狐》:对自然精神的尊重与回归

王蒙曾说&#xff1a;“需要郭雪波和他的小说&#xff0c;越是现代化越是需要郭雪波&#xff0c;需要他把我们带进另一个世界里去。” 作为一位蒙古族作家&#xff0c;郭雪波以其独特的文化背景和粗犷悲壮的写作风格&#xff0c;在国内小说领域占据了特殊的位置。对人类生态环…

oracle dbms_profiler,Oracle数据库中使用DBMS_PROFILER进行调优

在进行数据库调优时&#xff0c;代码的性能瓶颈至关重要&#xff0c;Oracle数据库提供的DBMS_PROFILER包可以特别方便的发现瓶颈的所在之处。DBMS_PROFILER在使用之前可能需要安装&#xff0c;具体安装步骤如下&#xff1a;◆1&#xff1a;执行$ORACLE_HOME/rdbms/admin/proflo…