當前位置:首頁 » 編程語言 » oracle排名sql編寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle排名sql編寫

發布時間: 2022-10-15 20:41:17

A. oracle 按時間排序,然後進行分頁的sql改怎麼寫急~~~ 表中有(時間欄位)

SELECT t.欄位名 FROM (
SELECT 欄位(可以是多表關聯的欄位) ,
row_number() over(order by 時間欄位 desc) r
FROM 表名 where 過濾條件 ) t
where t.r <= (每頁顯示條數*要查詢的頁) and t.r > (每頁顯示條數*(要查詢的頁-1))
有疑問可以再問
望採納

B. 假設對學生分數排名,怎樣寫sql語句(oracle)

使用oracle中row_number()over()分析函數
select row_number() over (order by 分數), 學生,分數 from table order by 分數 desc

C. oracle中針對一行記錄中的四個欄位進行排名,並把排名情況顯示在新的一行,要求效果如圖。該怎樣寫sql

需求描述:

將員工對應的JOB、MGR、SAL、COMM分別排序後,將結果展示在一條記錄。


測試表、測試數據:

createtableemp(
emp_idvarchar2(50),
jobvarchar2(50),
mgrvarchar2(50),
salnumber,
commvarchar2(50),
tvarchar2(50)
)

測試數據截圖:

insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('1','1001','0',100,'20',null);
insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('2','1002','2',200,'12',null);
insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('3','1003','2',100,'34',null);
insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('4','1004','2',700,'12',null);
insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('5','1002','4',400,'34',null);
insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('6','1006','4',400,'23',null);
insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('7','1001','4',600,'5',null);
insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('8','1002','4',400,'6',null);
insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('9','1006','8',300,'23',null);
insertintoEMP
(EMP_ID,JOB,MGR,SAL,COMM,T)
values
('10','1002','8',400,'8',null);


結果獲取SQL:


selectt0.emp_id,job_rank,mgr_rank,sal_rank,comm_rank
fromempt0
leftjoin(selectrownumjob_rank,job,emp_id
from(selectjob,emp_idfromemporderbyjob))t1
ont0.emp_id=t1.emp_id

leftjoin(selectrownummgr_rank,mgr,emp_id
from(selectmgr,emp_idfromemporderbymgr))t2
ont0.emp_id=t2.emp_id

leftjoin(selectrownumsal_rank,sal,emp_id
from(selectsal,emp_idfromemporderbysal))t3
ont0.emp_id=t3.emp_id

leftjoin(selectrownumcomm_rank,comm,emp_id
from(selectcomm,emp_idfromemporderbycomm))t4
ont0.emp_id=t4.emp_id


顯示結果:

D. Oracle: 下面對兩列order by排序的sql怎麼寫

為什麼要再寫一層啊
select nvl(date1,date2) date,aa from A order by nvl(date1,date2)
不行么??

E. ORACLE sql 排序 根據兩個條件排序,如圖,根據日期由小到大排序,同時BRAND欄位柳汽的排前面,怎麼寫

要排序的欄位用逗號隔開:
select * from 表名 order by BUY_DATE,BRAND

F. 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;

G. oracle 查詢數據只要排序後的第一條記錄(不用rownum=1),sql語句怎麼寫

1、創建測試表,

create table test_order(id number, value varchar2(50));

H. ORACLE下 算排名 排序 有人給我寫了以下SQL語句 啥意思 有沒有別的寫法 表如下

SELECT a1.Name, a1.Sales, COUNT(a2.sales) +1 Sales_Rank
FROM Total_Sales a1, Total_Sales a2
WHERE a1.Sales < a2.Sales
GROUP BY a1.Name, a1.Sales
ORDER BY a1.Sales DESC, a1.Name DESC