1.select top 10 * from sysdepends2.select * from (select top 10 * from sysdepends)n3.select id from (select top 10 * from sysdepends)n
1和2的结果都一样,为什么3查询出来的ID列的数据与1,2查询出来的ID列的数据不同?

解决方案 »

  1.   

    应该是一样的啊,会不会是你在执行第三条语句时sysdepends表数据变化了。
      

  2.   

    你这全没排序呀,加一个order id 就一样了(或是order by id desc)
      

  3.   

    3.select id from (select top 10 * from sysdepends)n 不知道为什么3查询出来的id列的数据都是1
    下面是select top 10 * from sysdepends的id列的数据
    id 
    101575400
    101575400
    229575856
    229575856
    1961058022
    1961058022
    1961058022
    1961058022
    1961058022
    101575400
    下面是select id from (select top 10 * from sysdepends)n 的id列的数据
    id
    1
    1
    1
    1
    1
    1
    1
    1
    1
    1
      

  4.   

    你这样查就一样了.
    select top 10 * from sysdepends 
    order by idselect * from (select top 10 * from sysdepends order by id)n 
    select id from (select id from sysdepends order by id)n 
      

  5.   


    3.select id from (select top 10 * from sysdepends)n 可能转换为:select top 10 id from sysdepends来执行了