UNION 查询时 为何不是第一个表的数据排在前面 在线等
select a1,a2,a3 from a
union
select b1,b2,b3 from b
查询结果 是 a表中的数据和b表中的数据混合着 ,没有指定任何排序,有什么办法指定 结果是 a表中的数据排在前面,表b中的数据库排在后面
------解决方案--------------------select *
from (
select a1,a2,a3,1 as xh from a
union
select b1,b2,b3,2 as xh from b ) T
order by xh
------解决方案--------------------select *
from (
select a1,a2,a3,1 as xh from a
union
select b1,b2,b3,2 as xh from b ) T
order by xh
这种方法可行!
------解决方案--------------------ls正解。
------解决方案--------------------select a1,a2,a3 ,1 as id from a
union
select b1,b2,b3,2 from b
order by id
------解决方案----------------------可以合并重复行。
select *
from (
select a1 as f1,a2 as f2,a3 as f3,1 as xh from a
union
select b1 as f1,b2 as f2,b3 as f3,2 as xh from b) T1
where checksum(f1,f2,f3) in
(select checksum(*)
from
(
select a1 as f1,a2 as f2,a3 as f3 from a
union
select b1 as f1,b2 as f2,b3 as f3 from b
) as T2)
order by xh