在sql中对两列使用order by

问题描述 投票:0回答:1

我有两个日期时间类型列,我想对这两列使用 order by,如果有人有最近的日期,那么它应该出现在顶部

我尝试了以下方法,但返回的结果低于预期。

select  *
from v_ServiceHistory
where r_customer = 80
order by r_closed desc, sfh_regeneratedon desc
sql sql-server sql-order-by
1个回答
0
投票

使用

case
表达式 获取最新的:

order by case when r_closed > sfh_regeneratedon then r_closed 
              else sfh_regeneratedon 
         end desc

或者,使用

GREATEST
(如果可用):

order by GREATEST(r_closed, sfh_regeneratedon) desc 
© www.soinside.com 2019 - 2024. All rights reserved.