4

例如,在 SQL 查询中,如何从行号 10 到 50 中选择特定数量的行。

SELECT top 15000 [ID].... 

将获得前 15000 行,但如果我想获得下 15000 行,我该怎么办?

4

5 回答 5

9

MySQL 的语法是

SELECT * FROM table LIMIT numberOfRowsToSkip, numberOfRowsToSelect

所以在你的情况下:

SELECT * FROM table LIMIT 9, 41; --selects from row no. 10 to no. 50

SELECT * FROM table LIMIT 15000, 15000; --selects from 15001st row, next 15000 rows

如需参考,请访问MySQL SELECT 文档Philippe为此提供了另一种语法。

对于 SQL Server,请参阅此。

于 2013-09-17T06:42:41.777 回答
3
SELECT *
FROM
(
SELECT 
ROW_NUMBER() OVER (ORDER BY ID),
*
FROM table
)  
WHERE ROW_NUMBER() between [start_range] and [end_range]
于 2013-09-17T06:49:01.430 回答
0

对于 mysql 和其他一些数据库:

SELECT * FROM table ORDER BY myField LIMIT numberOfRows OFFSET numberOfRowsToSkip 
于 2013-09-17T06:45:58.623 回答
0

对于 MSSQL,语法是

SELECT * FROM table LIMIT 15000, 15000;
于 2013-09-17T09:51:25.490 回答
0

以下信息特定于 Informix RDBMS。

下面引用部分的 SQL 语句将显示所选表的所有前 N=50 条记录(即从第 0 行到第 49 行)

SELECT FIRST 50 * from table_in_db

当我们想要显示以中间方式放置在表格中的连续 ROW 序列时,我们可以使用SKIP指令提供从 ROW-0 的偏移量,以指示 Informix 从中间 ROW(第 10 行)开始选择下面的示例)然后我们可以使用“FIRST”指令指示从第 10 行到第 50 行显示的行数

从 table_in_db 中选择 SKIP 9 FIRST 41 *

同样,当我们想要显示从 15001 到 30000 的 ROW 时 - 我们可以使用下面的 SQL 查询。

从 table_in_db 中选择 SKIP 15000 FIRST 15000 *

要了解更多信息,请参阅以下 IBM KnowledgeCenter Web 链接中提供的信息:https ://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.sqlt.doc/ids_sqt_076.htm

于 2021-02-10T05:13:00.230 回答