我想一次返回多个order by的内容数据
比如 order by hits,order by monthhits,order by dayhits 每个返回10条得到的数据为id  title orderby
1    123    hits
3    23525  hits
.
.
.
.
12    12312    monthhits
23    23525123  monthhits
.
.
.
.
32    1231211    dayhits
33    235251234  dayhits

解决方案 »

  1.   


    select top 10 *
    from tb 
    order by hits
    union all
    select top 10 *
    from tb
    order by monthhits
    union all
    select top 10 *
    from tb
    order by dayhits 
      

  2.   

    是这个意思?
    select *,1 as flg from tb where hits条件
    union all
    select *,2 from tb where monthhits条件
    union all
    select *,3 from tb where dayhits条件 
    order by (case flg when 1 then hits when 2 then monthhits else dayhits  end)
      

  3.   

    select * from (select top 10 * from tb order by hits ) a
    union all
    select * from (select top 10 * from tb order by monthhits) b
    union all
    select * from (select top 10 * from tb order order by dayhits) c
    不过这样查出来的数据有可能有重复的,如果需要不重复,把union all改为union
      

  4.   

    还是:
    select top 10 * from tb order by hits
    union all
    select top 10 * from tb order by monthhits
    union all
    select top 10 * from tb order by dayhits
      

  5.   

    娄山的有问题的吧。union不能直接和order by联合使用的,会报错的
    我就是卡在了这里
      

  6.   

    select * from (select top 10 * from tb order by hits) a 
    union all
    select * from (select top 10 * from tb order by monthhits) b
    union all
    select * from (select top 10 * from tb order by dayhits) c
      

  7.   

    楼上的可以,
    我原来也是这么写的,但是一直不通过,到最后才发现,要在后面加上a,b,c