现有两张表
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 就没问题了