SQL中union和多个order by同时出现的问题

本文介绍了一种在SQL查询中结合使用Union与OrderBy的方法,通过两个子查询分别获取满足不同条件的数据,并按指定字段进行排序。适用于需要将不同类型的数据进行组合并排序的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源网址:http://6731165.blog.163.com/blog/static/9887876200992663749784/

 

这样的,从一个表中select出一部分数据按照字段A升序排序,字段A的值有条件,比如说大于1000,剩余部分按照字段B降序排列
本来以为用一个union就搞定,没想到union之前的select字句中不能出现order by关键字,否则会出错
原来是这样写的:


select gamecoin,trancoin from anhui1
where gamecoin>1000
order by gamecoin asc

union

select gamecoin,trancoin from anhui1
where gamecoin<=1000
order by trancoin desc

报错: 关键字 'union' 附近有语法错误。


后来查找了csdn的资料(还是csdn高人多),代码如下,SQL Server 2005上运行OK


select * from
(
select top 100 percent gamecoin,trancoin from anhui1
where gamecoin>1000
order by gamecoin asc
)
aa

union

select * from
(
select top 100 percent gamecoin,trancoin from anhui1
where gamecoin<=1000
order by trancoin desc
)
bb

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值