日期:2014-05-18  浏览次数:20414 次

关于union的使用,数据集按类型分三组,希望分别排序后再union到一起
应该怎样操作?
select 接收号,单位全称
from t
where 类型=1
union
select 接收号,单位全称
from t
where 类型=2
union
select 接收号,单位全称
from t
where 类型=3

希望每组按接收号排序后再合并到一起。但是union不支持分开排序,连分类都不支持,结果会把不同类型的记录混放在一起,很不方便。

请问该怎么实现按分类分组排序后放在一个结果集里?

------解决方案--------------------
SQL code

select 接收号,单位全称,类型
from t
where 类型=1
union
select 接收号,单位全称,类型
from t
where 类型=2
union
select 接收号,单位全称,类型
from t
where 类型=3

order by 类型,接受号

------解决方案--------------------
select 接收号,单位全称
from t
where 类型 in(1,2,3)
group by 接收号,单位全称
order by min(类型)