select top 3 a.name, a.id from aaa as a order by a.name asc
union
select top 3 b.name, b.id from bbb as b order by b.name asc
上面是报错的。用临时对象表保存第一个搜索结果,也不好。总有意外情况,不是没删除表对象,就是已经删除了不能进行删除。求的是查询的6条记录,每次都一样。当数据表不变的情况下。

解决方案 »

  1.   

    select * from (select top 3 a.name, a.id from aaa as a order by a.name asc)a
    union
    select * from (select top 3 b.name, b.id from bbb as b order by b.name asc)b
      

  2.   

    不会啊,top+order by的数据顺序是一定的,除非你有重名的或者数据总在变动
      

  3.   

    这里有个非常重要的地方需要注意,其实你上面的那2个 order by 都会被QO删除了,所以你并不能保证数据顺序是一定的。
      

  4.   

    是的,最终结果的排序确定,我知道怎么弄的 order by 2 asc 即可