⑴ 要取出資料庫中按某欄位排序後的前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查詢排序後前20條語句
SELECTC.DFROM(
SELECTC,D,ROWNUM RNFROM(
SELECTT.*FROMTABLE1 ORDER BY B DESC --降序
) T1
)WHERERN <= 20
註:用ROWNUM的話,你要先排好序,然後再用ROWNUM生成偽列,再限制行數。
(2)資料庫查詢前20的數據擴展閱讀:
關於sql語句查詢排序
一、sql查詢單詞
order by 是用在where條件之後,用來對查詢結果進行排序
order by 欄位名 asc/desc
asc 表示升序(默認為asc,可以省略)
desc表示降序
order by 無法用於子查詢,否則會報錯:除非另外還指定了 TOP 或 FOR XML,否則,ORDER BY 子句在視圖、內聯函數、派生表、子查詢和公用表表達式中無效。
二、關聯查詢(左外查詢)(jt項目菜單查詢)
<select id="findObjects" resultMap="map">
select c.*,p.name parentNam
from sys_menus c left join sys_menus p
on c.parentId=p.id
三、用ORDER BY 子句
SELECT <列名列表> FROM <表名>[WHERE 條件]ORDER BY <欄位名1> [ASC|DESC] [ ,欄位名2 [ASC|DESC] ] [,...n]--order by <欄位名1> (不寫ASC|DESC, 則默認升序ASC)
⑶ 如何查詢資料庫中排名前幾位的數據
方法一: select top 10 * from 表名 order by 列名 方法二: select top 10 percent * from 表名 order by 列名 方法一:是按照指定列名排序後,取前十個方法二:按照指定列名排序後,取總數的10% 希望能夠滿足您的需求,謝謝採納
⑷ 資料庫查詢語句怎樣查詢一個表中的第15到第20條數據
用row_number來查詢。
具體方法如下:
以sqlserver2008R2為例。
1、創建數據表插入數據:
createtabletest
(idint,
namevarchar(20))
insertintotestvalues(1000,'張三')
insertintotestvalues(1001,'李四')
insertintotestvalues(1002,'王五')
insertintotestvalues(1003,'趙六')
insertintotestvalues(1004,'孫七')
insertintotestvalues(1005,'楊八')
insertintotestvalues(1006,'劉九')
insertintotestvalues(1007,'李白')
insertintotestvalues(1008,'杜甫')
insertintotestvalues(1009,'白居易')
insertintotestvalues(1010,'王安石')
insertintotestvalues(1011,'范仲淹')
insertintotestvalues(1012,'老子')
insertintotestvalues(1013,'莊子')
insertintotestvalues(1014,'孫子')
insertintotestvalues(1015,'喬丹')
insertintotestvalues(1016,'詹姆斯')
insertintotestvalues(1017,'韋德')
insertintotestvalues(1018,'羅德曼')
insertintotestvalues(1019,'梅西')
insertintotestvalues(1020,'內馬爾')
2、執行語句,查詢從id由小到大,然後找出第15到第20位的數據:
selectt.id,t.name,t.rnfrom
(selecttest.*,row_number()over(orderbyid)rnfromtest)t
wheret.rnbetween15and20
執行結果如下:
其中紅框部分即為排名信息。
⑸ SQL語句,提取表中數量最大數的前20個! 加分!
這個sql不用max就可以吧 反向排序就可以了
select top 20 * from book order by reads desc
⑹ 資料庫sql查詢語句,關於班級信息,如下:學生名字,編號,班級,成績,把每個班級最大成績前20名,列出來
若為oracle資料庫,則使用rownom來進行查詢
select * from
(
select * from 班級信息
order by 成績 desc
)
where rownom<=20
;
-------推薦答案oracle資料庫那個sql語句有問題,查出來的還是表裡面前20條數據,只是把這20條數據給降序排列了,而不是最大成績的前20.
--------------------------------------
若為sqlserver,則為
select top 20 成績
from 班級信息
order by 成績 desc
;
⑺ 查詢資料庫中的前10條記錄
SQL Server查詢前N條記錄:
因為id可能不是連續的,所以不能用取得10<id<20的記錄的方法。
有三種方法可以實現:
一、搜索前20條記錄,指定不包括前10條
語句:
select top 20 * from tbl where id not in (select top 10 id from tbl)
二、搜索記錄生成臨時表,建立臨時表的自增id。通過取得自增id的10<id<20的記錄的方法取得所需數據
語句:
select identity(int,1,1) as id,* into #temp from tbl;
select * from #temp where id between 10 and 20
第二個方法實際上是兩條語句,但你可以讓他連續執行,就像一條語句一樣完成任務。
三、如果覺得第一種方法效率太低,經過討論,得出第三種方法:
語句:
SELECT TOP 10 * FROM (SELECT TOP 20 * FROM tblORDER BY id) as tbl2 ORDER BY tbl2.id DESC
⑻ 在SQL中怎樣查詢一個表的第20條數據到30條數據
1、創建測試表,
create table test_order(id number , value varchar2(20));
⑼ access資料庫 怎麼查詢前20條記錄
select top 20 * from table
⑽ 怎麼才能查出sql資料庫中某一表中的10-20條的數據 哪位知道啊 請不吝賜教啊 不好意思分弄光了,沒有了
您好!
資料庫表中的數據是沒有順序的,所以你說的10-20條的數據就必須的有個條件,也就是說
where
某列名
=
XXX,那麼咱們
以Id
列來說吧
sql
語句
select
top
10
*
from
表名
where
id
not
in(select
top
10
id
from
表名)
這個語句是子查詢就是說先查出前10條數據,然後再去查這個表去掉前10條的剩下的所有數據的前10條。明白了嗎?以下是
通用的分頁語句,比較簡單
SELECT
TOP
頁大小
*
FROM
TestTable
WHERE
ID
NOT
IN
(SELECT
TOP
頁大小*頁數
id
FROM
表
ORDER
BY
id))
ORDER
BY
ID