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语句来实现
...全文
356 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
vfssqs 2006-08-15
  • 打赏
  • 举报
回复
顶。上楼说得很对。多看帮助文档。那是一个好老师。
fcuandy 2006-08-15
  • 打赏
  • 举报
回复
UNION运算时, ORDER BY 对所有结果集的合集有效,而不能用在单独的select语句中(最后一个select语句除外).

如何达到要求的效果,可以用子查询
http://www.idotnet.org/down/mssql.doc 里有详细说明.

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧