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

sql排序後取前100名

發布時間: 2022-09-24 18:23:38

『壹』 要取出資料庫中按某欄位排序後的前10,20,30條數據要怎麼做

可以使謂詞Top n來定實現這個需求。例如:

select top 10 * from tableName order by colName;

select top 20 * from tableName order by colName;

select top 30 * from tableName order by colName;

『貳』 sql取出每個分組的前幾條

一個簡單的方法就是排序之後給它分配序號,根據序號去找前幾條

select*

from(select公司,人數,

--按人數從多到少分配序號,不同公司會重1開始

rank()over(partitionby公司orderby人數desc)asxh

from公司檔案)asA

wherexh<=2--取前幾位就寫幾

orderby公司,人數desc

排序效果如下

『叄』 SQL如何對分組後的結果進行排序並且取前幾名

SQL取分組中的前幾名

[sql] www.2cto.com
create table #aa(class varchar(10),name varchar(10),lang int,math int)
go

insert into #aa
select '1','a1',60,70
union all
select '1','a2',80,70
union all
select '1','a3',90,70
union all
select '1','a4',50,70
go

insert into #aa
select '2','b1',60,70
union all
select '2','b2',90,90
union all
select '2','b3',90,70
union all
select '2','b4',50,70

go

select * from #aa

--取每年級前一名的成級
select * from
(select ROW_NUMBER() over(partition by class order by lang+math desc) rr, * from #aa ) a
where rr<2
--取每年級前二名的成級
select * from
(select ROW_NUMBER() over(partition by class order by lang+math desc) rr, * from #aa ) a
where rr<3

『肆』 如何用sql語句實現取出前100條記錄

各個資料庫的方法並非一樣
Mysql:

SELECT*FROMtblLIMIT0,100;SQLServer:

SELECT*FROMtblWHEREidIN(SELECTTOP100idFROMtbl);Oracle:

SELECT*FROMtblWHERErownum<=100

『伍』 如何在海量的數據中取前面100條

<%
'分頁sql語句生成代碼
Function GetPageSql(TblName,FldName,PageSize,PageIndex,OrderType,StrWhere)
Dim StrTemp,StrSql,StrOrder
'根據排序方式生成相關代碼
If OrderType = 0 Then
StrTemp = "> (Select Max([" & FldName & "])"
StrOrder = " Order By [" & FldName & "] Asc"
Else
StrTemp = "< (Select Min([" & FldName & "])"
StrOrder = " Order By [" & FldName & "] Desc"
End If

'若是第1頁則無須復雜的語句
If PageIndex = 1 Then
StrTemp = ""
If StrWhere <> "" Then
Strtmp = " Where " & StrWhere
End If
StrSql = "Select Top " & PageSize & " * From [" & TblName & "]" & Strtmp & StrOrder
Else '若不是第1頁,構造sql語句
StrSql = "Select Top " & PageSize & " * From [" & TblName & "] Where [" & FldName & "]" & StrTemp & _
" From (Select Top " & (PageIndex-1) * PageSize & " [" & FldName & "] From [" & TblName & "]"
If StrWhere <> "" Then
StrSql = StrSql & " Where " & StrWhere
End If
StrSql = StrSql & StrOrder & ") As Tbltemp)"
If StrWhere <> "" Then
StrSql = StrSql & " And " & StrWhere
End If
StrSql = StrSql & StrOrder
End If
GetPageSql = StrSql '返回sql語句
End Function
%>
分頁讀取數據,只讀取需要顯示的數據
如果你用的SQL資料庫,用存儲過程,需要的話帖上來

除了程序上有要求,需要將WEB伺服器和資料庫伺服器分開

或者把經常使用的數據緩存在內存中,比如使用8GB內存的伺服器,將資料庫數據全部緩存進去
還有很多技術要加在一起,呵呵

『陸』 sql server 分組成績前100名的數據

參考
首先,該問題對應的SQL如下
select 采購類別,客戶,訂貨總額
from (select 采購類別,客戶,訂貨總額,
row_number() over(partition by 采購類別 order by 訂貨總額 desc) rn
from table_name) a
where rn<=2
;
其次,常用資料庫比如Oracle和Sqlserver都有特定函數完成分組排序的功能,如果需要顯示並列的情況可以用下面另外的2個.
分別有3個類似函數:
row_number() over
這個函數不需要考慮是否並列,哪怕根據條件查詢出來的數值相同也會進行連續排名。也是最常用的函數,排序結果類似於1,2,3,4,5
rank() over
查出指定條件後進行一個排名,但是有一個特點。假如是對學生排名,那麼實用這個函數,成績相同的兩名是並列。排序結果類似於1,2,2,4,5
dense_rank() over
比較特殊,排序結果類似於1,2,2,3,4

『柒』 SQL語句取最後100條數據

select top 100 * from 表名 order by 列名 desc (升序asc 降序desc)

你表肯定是根據哪列排序的吧,你要最後100個就根據情況用「升序」還是「降序」排列吧
select是查詢的意思
top是指上面的
select top 100意思就是查詢前100
order by 列名 desc 意思就是根據列名行降序排列

大概就這樣吧 你自己理解下 希望有幫助

『捌』 SQL語句修改,截取前100條數據

select * from (
select row_number() over(partition by buyer order by 排序欄位) rindex , * from tablename
) where rindex<=100

row_number() over(partition by 分組欄位 order by 排序欄位)可實現分組f1-f5後再對每個組進行自定的排序編號,外面再嵌套一層select,直接取排序編號為前100的。


我不是已經回答過了么?這個可以解決你的問題,照著模板來啊,

比如你的f1-f5數據記錄為

f1f1a1
f2f2a1
f3f3a1
f4f4a1
f5f5a1
f1f1a2
f2f2a2
f3f3a2
f4f4a2
f5f5a2
........
f1f1a2000
f2f2a2000
f3f3a2000
f4f4a2000
f5f5a2000
那麼他分組排序後取出的數據是
f1f1a11
f1f1a22
.....
f1f1a20002000
f2f2a11
f2f2a22
........
f2f2a20002000
f3f3a1
......同上
f4f4a1
......同上
f5f5a1
......同上
得出這種數據後,直接取rindex<=100的,每組的前100條數據不就出來了?

『玖』 SQL如何顯示查詢結果的前100條

SQL語句顯示查詢結果前100條在不同的資料庫查詢語句不同,分別是:

1、在 sqlserver資料庫中:

SET ROWCOUNT 100 GOSELECT * FROM 表名 ;

2、在Oracle資料庫中:

select*from表名 whererownum<=100;

3、在mysql資料庫中:

select*from表名 limit 0,100,使用idea進行示例如下:

(9)sql排序後取前100名擴展閱讀:

如果要查詢指定條數的搜索結果,可以使用limit函數實現,Limit子句可以被用於強制 SELECT 語句返回指定的記錄數。例如使用SQL語句顯示查詢結果的100到300條記錄語句為:

SELECT * FROM tablename LIMIT 100,300 ;

總之,使用limit函數可以輕松對查詢結果進行控制,或者實現分頁功能。

『拾』 SQL查詢已經排序好的數據中的前幾條

--Mysql
select*from表orderby欄位limit0,5;

--Oracle
SELECT*FROM表WHEREROWNUM<=5ORDERBY欄位;

--ServerSQL
selecttop5*from表orderby欄位;