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