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

来源:互联网 发布:2017十大网络用语 编辑:程序博客网 时间:2024/06/04 19:16

源网址: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