样本表
我需要按REMARKS
按升序排序上面的记录,然后按FIRSTDATE
按降序排序,然后按LASTDATE
按降序排序
我做这个查询
select * from tblRecord
order by Remarks, FirstDate desc, Lastdate desc
并给我这个输出
应该是这样的:
更新
Startdate
和Enddate
是指租户的实际开始日期和最后日期操作,我想要的是每个备注分开租户的排序,当停止时,排序应该基于firstdate的降序,启动时,应按降序排列。
答案 0 :(得分:2)
这可能有助于您在CASE
ORDER BY
SELECT * FROM tblRecord
ORDER BY CASE Remarks WHEN 'started' THEN Lastdate
ELSE FirstDate END
DESC
答案 1 :(得分:1)
不确定你正在寻找的是什么,因为你现在没有回应,我有两种情况可以得到你想要的结果,其中一种肯定是错误的或者两者都可能是错的,但它们都会使用您提供的测试数据生成您正在寻找的结果
情况1:当您的言论停止时,您需要通过startdate降序进行排序,并且在开始评论时通过startdate升序进行排序,在这种情况下您将获得此代码:SQLFIDDLE
select * from mytable
order by remarks,
CASE WHEN remarks = 'started'
THEN startdate END ASC,
CASE WHEN remarks ='ceased'
THEN startdate END DESC,
enddate DESC
情况2:当你的评论停止时,你需要通过startdate订购记录,当评论开始时你需要按enddate排序,在这种情况下查询将是:SQLFIDDLE
select * from mytable
order by remarks,
CASE WHEN remarks = 'started'
THEN enddate END DESC,
CASE WHEN remarks ='ceased'
THEN startdate END DESC;