当前位置: 代码迷 >> Sql Server >> MSSQL 2005 如何实现mysql的limit 功能
  详细解决方案

MSSQL 2005 如何实现mysql的limit 功能

热度:482   发布时间:2016-04-24 21:04:05.0
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 就没问题了
  相关解决方案