sqlserver 2008中查找限定行数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 2008中查找限定行数据相关的知识,希望对你有一定的参考价值。

我在sqlserver中有一个表,我想在这个表中查询出第n行开始的m条数据,请问怎么实现啊???

首先你要查第N行,你必须要排序,我假设一ID排序来写这个Sql
你如果用其他字段排序,只需要把ID替换成你的字段。

SELECT TOP m * FROM 表名
WHERE( ID>
  (SELECT MAX(ID) FROM (SELECT TOP N ID FROM 表名 ORDER BY ID) AS T)
)
  ORDERBY ID追问

请问你第三行后面 AS T是什么意思啊?

追答

SELECT TOP m * FROM 表名
WHERE ( ID > (SELECT MAX(ID) FROM (SELECT TOP N ID FROM 表名 ORDER BY ID)AS T ))
ORDER BY ID
刚才上面的语句 没把Order by 隔开哈,

AS T 是表示,把(SELECT TOP 3 ID FROM 表名 ORDER BY ID) 这个结果集 取一个别名。表示一张表。如果不加AS T 则会报错,AS T 在这里可以解析为一张表

追问

SELECT TOP 2 * FROM product
WHERE( product_id>
  (SELECT MAX(product_id) FROM (SELECT TOP 2 product_id FROM product ORDER BY product_id) AS T)
) ORDER BY product_id
为什么我这样输入报错:
消息 102,级别 15,状态 1,第 3 行
' ' 附近有语法错误。
消息 102,级别 15,状态 1,第 4 行
')' 附近有语法错误。

追答

你的写法没问题,是中间的空格有问题,在这个上面没法给你去空格,你加我QQ327556665

参考技术A ;with cte as(select *,row_number() over(order by id)rn from tb)
select * from cte where rn>=n and r<=n+m

以上是关于sqlserver 2008中查找限定行数据的主要内容,如果未能解决你的问题,请参考以下文章

如何查找在 SQL Server 表中插入或更新行的时间

SQL Server 2008 查找特定用户拥有的数据库

如何查找 SQL Server 2008 实例,包括默认实例

在SQLserver2008中,怎么在整个数据库的所有表中搜索一个数据,求详解

SQL Server 2008 行插入和更新时间戳

安装SQL SERVER 2008,出现“查找sql server 2008安装媒体”的问题