ROWNUM 伪列的用法

作者:孙英鹏     撰写时间:2019年3月28日

ROWNUM 伪列的用法

今天给大家讲的是ROWNUM 伪列的用法,伪列是什么?顾名思义就是添加一个假的列用来装查询出的内容添加序列号。伪列可以用在那些方面上呢?我们来看一下。

例子1:

查询出学生表中的学生成绩按升序排列后10 – 20 的学生信息。

看到这题的时候,相信大家都会想到用过滤语句,用过滤语句来查出信息,当时的我也是这样,直到后来老师讲了ROWNUM语句,我才知它的真正作用。

先看答案:

Select * from(
select rownum r,e.* from
(select degree
From score
Order by degree desc)e)where r<=20 and r>=10

先把成绩查出来,用ORDER BY 语句来升序,写好之后,再写rownum的伪列,然后把成绩括起来,外面再写一个大查询包裹起来,之后写上where语句查出10 – 20的信息就行了。(注意:直接使用rownum的话,where后面的rownum只能用小于或小于等于来查询,不能用大于或大于等于来查询,会查不出来,所以着道题是用‘r’来查出10-20的学生信息)

例子2:
如图:
在这里插入图片描述

看到这题的时候,是不是想到用子查询,其实它还可以用到伪列的,一开始我不相信,后来看了一下老师答案,才理解了含义。

答案:
在这里插入图片描述

我是这么理解的,先查询出学生号和课程,在用成绩来排序,外面在加上大的查询包裹学生号和课程,写完之后加上where rownum=1语句来查出排在第一的学生号和课程。

看完之后,发现 ‘rownum’不仅仅可以用在查询排名第几和第几,还可以获取排在第一的内容,真是受用!

猜你喜欢

转载自blog.csdn.net/weixin_44547418/article/details/89073330