UNION 查询时 为何不是第一个表的数据排在前面 在线等

yiyezhiqiu 2007-05-14 03:21:41
select a1,a2,a3 from a
union
select b1,b2,b3 from b

查询结果 是 a表中的数据和b表中的数据混合着 ,没有指定任何排序,有什么办法指定 结果是 a表中的数据排在前面,表b中的数据库排在后面
...全文
479 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyezhiqiu 2007-05-14
  • 打赏
  • 举报
回复
谢谢各位
OracleRoob 2007-05-14
  • 打赏
  • 举报
回复
--可以合并重复行。

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

yiyezhiqiu 2007-05-14
  • 打赏
  • 举报
回复
这个方法 能达到 我需要的结果 ,可是会导致 不能去掉两个表中的重复行
-狙击手- 2007-05-14
  • 打赏
  • 举报
回复
select a1,a2,a3 ,1 as id from a
union
select b1,b2,b3,2 from b
order by id
crazyflower 2007-05-14
  • 打赏
  • 举报
回复
ls正解。
qys2000 2007-05-14
  • 打赏
  • 举报
回复
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
这种方法可行!
OracleRoob 2007-05-14
  • 打赏
  • 举报
回复
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

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧