
正文
oracle如何给列排名 oracle 排名并列
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
oracle按照某一列数值排序,并将排序的名次保存到另一个字段
select rownum no,* from 表名 order by bonus desc;
Oracle的rownum与rowid区别:
ROWNUM是对结果集加的一个伪列,即先查到结果集之后再加上去的一个列 (强调:先要有结果集)。简单的说 rownum 是对符合条件结果的序列号。它总是从1开始排起的。所以你选出的结果不可能没有1,而有其他大于1的值;参考:
rowid 与 rownum 虽都被称为伪列,但它们的存在方式是不一样的,rowid 可以说是物理存在的,表示记录在表空间中的唯一位置ID,在DB中唯一。只要记录没被搬动过,rowid是不变的。rowid 相对于表来说又像表中的一般列,所以以 rowid 为条件就不会有 rownum那些情况发生
相关问答
Q1: oracle数据库中怎样依据成绩实现排名
首先,来构造一些数据
drop table test;
create table test
(
name varchar2(10),
account number(5)
);
insert into test values ('张三','5');
insert into test values ('王五','10');
insert into test values ('小二','10');
insert into test values ('李四','20');
insert into test values ('小三','40');
insert into test values ('小四','50');
insert into test values ('小五','90');
insert into test values ('小六','90');
insert into test values ('小七','90');
commit;
下面来看一下一些方式的排名结果:
1. select t.*,dense_rank() over(order by t.account asc) 排名 from test t;
2. select t.*,dense_rank() over(order by t.account desc) 排名 from test t;
3. select t.*,rank() over(order by t.account asc) 排名 from test t;
4. select t.*,rank() over(order by t.account desc) 排名 from test t;
Q2: Oracle: 下面对两列order by排序的sql怎么写?
为什么要再写一层啊
select nvl(date1,date2) date,aa from A order by nvl(date1,date2)
不行么??
Q3: oracle中,有一个学生成绩视图,怎样给这个视图添加一列,并且在这一列中给学生的总成绩排名
oracle中oracle如何给列排名,有一个学生成绩视图,怎样给这个视图添加一列,并且在这一列中给学生oracle如何给列排名的总成绩排名
你好,view是不可以增加列的,你只能修改view的基表,然后重建view。
如果你的表结构是student_cj(no,name,score1,score2,score3)
原来的view为
create view v_student_cj
as
select no,name,score1,score2,score3 from student_cj;
必须执行以下命令来满足你的需求
create or replace view v_student_cj
as
select no,name,score1,score2,score3,(score1+score2+score3) sum
from student_cj
order by sum desc;
关于oracle如何给列排名和oracle 排名并列的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







