MSSQL 2005 如何实现mysql的limit 功能
MSSQL 2005 怎么实现mysql的limit 功能现有两张表1 Product产品表 字段有 ID,ClassID,Title2 Class类别表
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 就没问题了