select * from (select sal from emp where sal > 40000 order by sal asc) t1 union all select * from (select sal from emp where sal < 4000 order by sal desc) t2
你的描述缺乏4000-40000这段数据怎么排序的说明select * from 表 order by (case when 列>40000 then 1 when 列<4000 then 2 end ) ,(case when 列>40000 then -列 when 列<4000 then num end ) desc
因为ID中包含40000,50000或则05-00015789之类的数据elect * from 表 order by (case when id>40000 then id when id<4000 then id end ) asc ,(case id 列>40000 then id when id<4000 then id end ) desc不对啊。
我写成ORDER BY (CASE WHEN ID〉40000 THEN ID ASC ELSE ID DESC), 系统报错的。
是 ORDER BY (CASE WHEN ID〉40000 THEN ID ASC ELSE ID DESC END)
select * from ( select * from( select * from TABLE where .. order by col desc ) a union all select * from( select * from TABLE where .. order by col asc ) b )
union all
select * from (select sal from emp where sal < 4000 order by sal desc) t2
order by (case when 列>40000
then 1
when 列<4000
then 2
end
)
,(case when 列>40000
then -列
when 列<4000
then num
end
) desc
order by (case when id>40000
then id
when id<4000
then id
end
)
asc
,(case id 列>40000
then id
when id<4000
then id
end
) desc不对啊。
系统报错的。
ORDER BY (CASE WHEN ID〉40000 THEN ID ASC ELSE ID DESC END)
select * from(
select * from TABLE
where ..
order by col desc
) a
union all
select * from(
select * from TABLE
where ..
order by col asc
) b
)