sql 使用union后结果集排序,无法理解

//这是unionall的结果,很正常,四个人名+三个数码产品//赵佳儿段飞李四张三手机空调电脑//这是只有union的结果,为什么乱序了?//电脑段飞空调李四手机张三赵... //这是union all的结果,很正常,四个人名+三个数码产品//
赵佳儿
段飞
李四
张三
手机
空调
电脑
//这是只有union 的结果,为什么乱序了?//
电脑
段飞
空调
李四
手机
张三
赵佳儿
//sql语句:
select Userinfo.UserName from USerinfo union select Address.UserBuy
from Address
select Userinfo.UserName from USerinfo union all select Address.UserBuy
from Address
展开
 我来答
0808xyj
2015-06-08 · TA获得超过1891个赞
知道大有可为答主
回答量:1237
采纳率:100%
帮助的人:1082万
展开全部
由于Union需要对查询结果集进行排序操作,当数据量较大时,若非特殊需要,尽量不要使用Union操作,
用Union All操作,然后对Union All出来的结果执行去重操作即可,所以结果不一样
-- union all
select '张三' name
union all
select '李四' 
union all
select '王五' 
union all
select '王五' 
union all
select '苹果' address
union all
select '香蕉' 
union all
select '橘子' 
-- result
张三
李四
王五
王五
苹果
香蕉
橘子
-- union 
select '张三' name
union all
select '李四' 
union all
select '王五' 
union all
select '王五' 
union 
select '苹果' address
union all
select '香蕉' 
union all
select '橘子' 
-- result
李四
苹果
王五
张三
香蕉
橘子
追问
意思是,union的排序不靠谱么。。
追答
-- 是的,你可以加排序号,如下
select '张三' name,1
union all
select '李四' ,1
union all
select '王五' ,1
union 
select '王五' ,1
union 
select '苹果' address,2
union all
select '香蕉',2 
union all
select '橘子' ,2
order by 2
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式