union all 两边的sql不可以用排序了吗

deninghe 2006-08-15 03:08:24
我现在用这sql实现
select * from e_pinpai where renzheng=1 order by impath desc
============================
由于 最近 有些用户没有发图片 所以会出现不美观的问题

我现在想根据用户的发布时间来排序,如果正好用户没有发图片但是是最新发布滴也要显示到后面.

!也就是说优先显示有图片的用户信息
(select * from e_pinpai where renzheng=1 and impath<>'' order by zjsxshijian desc union all select * from e_pinpai where renzheng=1 and impath='' order by zjsxshijian desc) order by impath desc
用上面的语句会出错
===服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'order' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: ')' 附近有语法错误。
请指教 应该用一条什么sql语句来实现
...全文
221 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
vfssqs 2006-08-15
顶。上楼说得很对。多看帮助文档。那是一个好老师。
回复
fcuandy 2006-08-15
UNION运算时, ORDER BY 对所有结果集的合集有效,而不能用在单独的select语句中(最后一个select语句除外).

如何达到要求的效果,可以用子查询
http://www.idotnet.org/down/mssql.doc 里有详细说明.
回复
发动态
发帖子
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
社区公告
暂无公告