读书人

MSSQL 2005 如何实现mysql的limit 功能

发布时间: 2013-08-01 15:23:18 作者: rapoo

MSSQL 2005 怎么实现mysql的limit 功能
现有两张表
1 Product产品表 字段有 ID,ClassID,Title
2 Class类别表 字段有 ClassID,ClassName,ParentPath

因为Class类别表有N级的 假设ClassID=12 那要查找这个类的ID级它子类的ID可以用这个实现

select ClassID from Class where ClassID=12 or ParentPath like '12,%'


假如我要取ClassID=12的前5条记录
select top 5 Class.ClassName,Product.* from Product INNER JOIN Class ON Product.ClassID=Class.ClassID where Product.ClassID in (select ClassID from Class where ClassID=12 or ParentPath like '12,%') order by id DESC


那这样,我假如要取ClassID=12的前5条记录但要从 第6条记录开始取 这样SQL语句要怎么写呢? MS?SQL limit
[解决办法]
select *
from (
select Class.ClassName,Product.*,ROW_NUMBER() OVER(ORDER BY ID DESC) rn
from Product
INNER JOIN Class ON Product.ClassID=Class.ClassID
where Product.ClassID in (select ClassID from Class where Class.ClassID=12 or Class.ParentPath like '12,%')
)t
where rn>5


[解决办法]
楼上的加个 top 5 就没问题了

读书人网 >SQL Server

热点推荐