首先我想知道这个语句: 
“select top n * from TABLE_NAME where id not in (select top n id from TABLE_NAME )” 是不是从第(n+1)个记录开始选择,而到第2n个记录结束,总共选则n个?(还是说从第n个开始到第2n个结束,那样的话岂不是选择了n+1个记录?) 我想问问如何将下面这个my sql的limit语句转换成sql server top的语句: 
(1).sqlStr="Select  * From a";        /*a是一个table名*/ 
(2).sqlStr=sqlStr+"and ID='"+Id+"limit"+m+","+n; 
如果仅仅将后面的"limit"+m+","+n 改为sql server语句应该是:select top n ID from a where ID not in (Select top m ID from a); 
但(2)是个sqlStr语句的叠加,还有个and连接,我就不知道该如何结合(1)将(2)整个语句该成sql server top的语句. 
请大家帮帮忙了,谢谢! 

解决方案 »

  1.   

    为啥就没人进来看看呢?就因为没分吗?csdn怎么可能会是个有分就帮忙,无分就拉到的社区?我不相信啊。
      

  2.   

    没有看到记录及要求结果,用类似
    select top 4 from (select top 10 id from tt order by id)
      

  3.   

    在mysql里面直接用limit n,m就可以取指定的数据如果是在mssql里面的话,用top n的话,最好是用order by排一下序,要不然你取来的是不可预知的数据
      

  4.   

    我现在使用的是sql server,所以想将上面my sql语句改换成sql server语句.
      

  5.   

    就是类似
    select top 4 from (select top 10 id from tt order by id)
    这样的语句,最好贴记录出来看看
      

  6.   

    首先我想知道这个语句:
    “select top n * from TABLE_NAME where id not in (select top n id from TABLE_NAME )” 是不是从第(n+1)个记录开始选择,而到第2n个记录结束,总共选则n个?(还是说从第n个开始到第2n个结束,那样的话岂不是选择了n+1个记录?)假设有10条记录,第二个N为3,则返回从4-10的记录我想问问如何将下面这个my sql的limit语句转换成sql server top的语句:
    (1).sqlStr="Select  * From a";        /*a是一个table名*/
    (2).sqlStr=sqlStr+"and ID='"+Id+"limit"+m+","+n;
    如果仅仅将后面的"limit"+m+","+n 改为sql server语句应该是:select top n ID from a where ID not in (Select top m ID from a);
    但(2)是个sqlStr语句的叠加,还有个and连接,我就不知道该如何结合(1)将(2)整个语句该成sql server top的语句.
    请大家帮帮忙了,谢谢! 类似
    select top 4 from (select top 10 id from tt order by id) 
      

  7.   

    select top 4 from (select top 10 id from tt order by id) and ID=‘2’ order by id
    这样就行了。
      

  8.   


    select * from tablename where 1 limit n-1,n