当前位置: 代码迷 >> Sql Server >> SQL分页语句有有关问题大家帮忙解决一下
  详细解决方案

SQL分页语句有有关问题大家帮忙解决一下

热度:87   发布时间:2016-04-27 12:43:23.0
SQL分页语句有问题大家帮忙解决一下
[dbo].[View_Department]是一个视图,是对几个表的联合查询的结果,DomainID是这个表里的一个(机构)字段,如果直接查询这个表里的数据分页是没有问题的。就是下面的语句
SELECT TOP 10 * FROM [dbo].[View_Department]
  WHERE DomainID NOT IN 
  (SELECT TOP 10 DomainID FROM [dbo].[View_Department])

但是我要是把机构字段加进where条件里去就不对,第一页可以查询出来,但就是查询不出来以后的页数,什么问题大家给我看看,指点一下,数据库里有16条记录,语句如下:看看哪里错了

//这里可以查询出第一页的前10条数据
SELECT TOP 10 * FROM [dbo].[View_Department]  
  WHERE DomainID NOT IN 
  (SELECT TOP 0 DomainID FROM [dbo].[View_Department] 
  ORDER BY [GroupID]) and DomainID = 2 

//这句就查询不出来第2页了,为什么啊,
SELECT TOP 10 * FROM [dbo].[View_Department]  
  WHERE DomainID NOT IN 
  (SELECT TOP 10 DomainID FROM [dbo].[View_Department] 
  ORDER BY [GroupID]) and DomainID = 2 
求高人指点,怎么该

------解决方案--------------------
SQL code
SELECT TOP 10 * FROM [dbo].[View_Department]     WHERE DomainID NOT IN    (SELECT TOP 10 DomainID FROM [dbo].[View_Department]    ORDER BY [GroupID]) and DomainID = 2 我给你解释一下你的语句:你要查询的是DomainID 不在ORDER BY [GroupID]前十条的数据中的DomainID ,而且DomainID <>2那这么一说假如前十中有DomainID =2,那么你不就是没结果了吗?我不明白你这个分也是什么意思,为什么要加DomainID <>2
  相关解决方案