我想一次返回多个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
比如 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
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
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)
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
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
我就是卡在了这里
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
我原来也是这么写的,但是一直不通过,到最后才发现,要在后面加上a,b,c