求助!sql server order by 问题

Zodiace 2007-01-29 02:50:58
select ... from ...where...
ORDER BY SUB_TENP DESC, CHNG_DATE DESC,
CASE WHEN DEL_DATE IS NULL THEN DEL_DATE ASC ELSE DEL_DATE DESC END, TENP_KN DESC
...全文
274 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sp4 2007-01-29
  • 打赏
  • 举报
回复
试一下,原来可以放在order by 后面,只是你写错了(以前从来没这么写过)

select ... from ...where...
ORDER BY SUB_TENP DESC, CHNG_DATE DESC,
CASE WHEN DEL_DATE IS NULL THEN DEL_DATE ASC ELSE DEL_DATE DESC END, TENP_KN DESC

“DESC END” 应该反过来啊 “END DESC”
select ... from ...where...
ORDER BY SUB_TENP DESC, CHNG_DATE DESC,
CASE WHEN DEL_DATE IS NULL THEN DEL_DATE ASC ELSE DEL_DATE END DESC , TENP_KN DESC
sp4 2007-01-29
  • 打赏
  • 举报
回复
case when 不能用到order by 里

select ...,CASE WHEN DEL_DATE IS NULL THEN DEL_DATE ASC ELSE DEL_DATE DESC END as newfield from ...where...
ORDER BY SUB_TENP DESC, CHNG_DATE DESC,
newfield desc, TENP_KN DESC
Zodiace 2007-01-29
  • 打赏
  • 举报
回复
up
Zodiace 2007-01-29
  • 打赏
  • 举报
回复
up
playwarcraft 2007-01-29
  • 打赏
  • 举报
回复
我猜你的意思是

order by ORDER BY SUB_TENP DESC, CHNG_DATE DESC,
CASE WHEN DEL_DATE IS NULL THEN '2999-01-01' ELSE DEL_DATE END DESC,
TENP_KN DESC
Zodiace 2007-01-29
  • 打赏
  • 举报
回复
要求是先取SUB_TENP 字段的最大值,如果SUB_TENP 字段的最大值有多个则取CHNG_DATE 字段的最大值,如果还有多条数据的话,取DEL_DATE 为空的字段,如果还是有多条数据的话,再按TENP_KN 字段排序
Zodiace 2007-01-29
  • 打赏
  • 举报
回复
是放在最后啊
good__student 2007-01-29
  • 打赏
  • 举报
回复
order by 只能放在最后
Zodiace 2007-01-29
  • 打赏
  • 举报
回复
请帮忙看看这个order by 子句有什么问题?怎么改进。

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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