日期:2014-05-17  浏览次数:20657 次

关于数据库的top问题
select top 3 * from glyb where userid not in(
select top 11 userid from glyb)


数据库,为什么只显示前两条数据 。 数据总共15行。。。。。。
把11 改成9以下的就可以显示三个 费解。。。。

第一个要是改成四的话 第二个就得改成8以下的才可以

------解决方案--------------------
是不是你的数据有问题?我测试的没问题啊:
SQL code
CREATE TABLE #t (id INT )
 GO
 INSERT INTO #t
         ( id )
 SELECT 1
 UNION ALL 
 SELECT 2
 UNION ALL SELECT 3
 UNION ALL SELECT 4
 UNION ALL SELECT 5
 UNION ALL SELECT 6
 UNION ALL SELECT 7
 UNION ALL SELECT 8
 UNION ALL SELECT 9
 UNION ALL SELECT 10
 UNION ALL SELECT 11
 UNION ALL SELECT 12
 UNION ALL SELECT 13
 UNION ALL SELECT 14
 UNION ALL SELECT 15
 
 
 select top 3 * from #t where id not in(
 select top 11 id from #t)
  /*
  (15 行受影响)
 id
 -----------
 12
 13
 14
 
 (3 行受影响)
  */