不同的数据库,写法不一样。例如我要检索,第11条到第20条,MySQL数据库的最简单:
SELECT*FROM表LIMIT11,10
SQLServer的稍微折腾一些
SELECT
TOP10
top20.*
FROM
(
SELECT
TOP20
*
FROM
表
ORDERBY
排序字段DESC
)AStop20
ORDERBY
top20.排序字段ASC
结构化查询语言(StructuredQueryLanguage)简称SQL(发音:/ˈeskjuːˈel/"S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。
--从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)SELECT TOP n-m+1 * FROM Table WHERE (id NOT IN (SELECT TOP m-1 id FROM Table ))--从TABLE表中取出第m到n条记录 (Exists版本)SELECT TOP n-m+1 * FROM TABLE AS a WHERE Not Exists(Select * From (Select Top m-1 * From TABLE order by id) b Where b.id=a.id )Order by id以下两种方法都是实现提取数据库第20到第30条中间的十条记录的sql句子: select top 10 * from 表名 where ID字段 not in (select top 20 ID字段 FROM 表名 order by ID字段)行数假定由id决定(id最好是自动增加的序列)删除前10行delete from 表名 where id in(select top 10 id from 表名)删除10-20delete from 表名 where id in(select top 20 id from 表名)and id not in(select top 10 id from 表名)二、在MYSQL中,可以使用关键字LIMIT:SELECT * FROM table [条件语句] LIMIT [offset,] rowsLIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。--从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)SELECT TOP n-m+1 * FROM Table WHERE (id NOT IN (SELECT TOP m-1 id FROM Table ))
--从TABLE表中取出第m到n条记录 (Exists版本)
SELECT TOP n-m+1 * FROM TABLE AS a WHERE Not Exists
(Select * From (Select Top m-1 * From TABLE order by id) b Where b.id=a.id )
Order by id
--m为上标,n为下标,例如取出第8到12条记录,m=8,n=12,Table为表名
Select Top n-m+1 * From Table
Where Id(Select Max(Id) From
(Select Top m-1 Id From Table Order By Id Asc) Temp)
-----------------------------------------------------------------------------------------------------------------------------------------
表pictures中有两个字段:id与title。id是自动编号的
表中有5条记录:1--p1,2--p2,3--p3,4--p4,5--p5
一、找到了一个小规律
string sqlstr = "select top 4 * from pictures order by id desc "//查询结果p5,p4,p3,p2---说明是整个表先进行排序,再进行查询的
string sqlstr = "select top 3 * from (select top 4 * from pictures order by id desc) "//-------p5,p4,p3
string sqlstr = "select top 3 * from (select top 4 * from pictures order by id desc) order by id desc"//-------p5,p4,p3
string sqlstr = "select top 3 * from (select top 4 * from pictures order by id desc) order by id asc"//-------p2,p3,p4
二、获取单条记录:
假设表中一共有counts条记录,现在想要查询第n条记录,则sql语句应是:
select top 1 * from (select top (counts-n+1) * from pictures order by id desc) order by id asc
第三条记录:
string sqlstr = "select top 1 * from (select top 3 * from pictures order by id desc) order by id asc"//-------p3
三、获取表中多条连续的记录
假设表中一共有counts条记录,现在想要查询第n到第m条的记录,则sql语句应是:
select top (m-n+1) * from (select top (counts-n+1) * from pictures order by id desc) order by id asc
获取第二到第四条记录:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)