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 展开
赵佳儿
段飞
李四
张三
手机
空调
电脑
//这是只有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 展开
1个回答
展开全部
由于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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询