BUG还得自己改啦。。。
1. 
 select   top   (m-n)   *   from   tablename   where   id   not   in   (select   top   n   id   from   tablename) 
 2. 
 select   top   m   *   into   临时表(或表变量)   from   tablename   order   by   columnname   --   将top   m笔插入 
 set   rowcount   n 
 select   *   from   表变量   order   by   columnname   desc 
 3. 
 select   top   n   *   from   
 (select   top   m   *   from   tablename   order   by   columnname)   临时表
 order   by   columnname   desc 
 4.如果tablename里没有其他identity列,那么: 
 select   identity(int)   id0,*   into   临时表   from   tablename 
 取n到m条的语句为: 
 select   *   from   临时表   where   id0   >=n   and   id0   <=   m 
 如果你在执行select   identity(int)   id0,*   into   #temp   from   tablename这条语句的时候报错,那是因为你的DB中间的select   into/bulkcopy属性没有打开要先执行: 
 exec   sp_dboption   你的DB名字, "select   into/bulkcopy ",true 
 5.如果表里有identity属性,那么简单: 
 select   *   from   tablename   where   identitycol   between   n   and   m   (如果中间有删除的值呢?)
 比如一个表有100条记录怎么取其中的第30至第40条记录??
 select   top   10   *   from   (selet   top   40   *   from   table)  临时表  order   by   id   desc (有问题。。。)
 -------------------------------------------------------------------------------------------------------------------------------------
    SELECT a.au_fname+a.au_lname
   FROM authors a,titleauthor ta
   (SELECT title_id,title
   FROM titles
   WHERE ytd_sales>10000
   ) AS t
   WHERE a.au_id=ta.au_id
   AND ta.title_id=t.title_id
显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。 
 SELECT region, SUM(population), SUM(area)
 FROM bbc
 GROUP BY region
 HAVING SUM(area)>1000000