我想根据以下顺序对SQL Server表进行排序:
样本数据:
Id | Title | CreatedOn | VisitCount
1 | One | 2020-04-20 | 51
2 | Two | 2020-04-22 | 101
3 | Three | 2020-04-25 | 30
4 | Four | 2020-04-27 | 25
5 | Five | 2020-04-29 | 30
6 | Six | 2020-04-30 | 42
7 | Seven | 2020-05-01 | 15
预期结果通过假设当前日期为2020-05-02
Id | Title | CreatedOn | VisitCount
6 | Six | 2020-04-30 | 42
5 | Five | 2020-04-29 | 30
7 | Seven | 2020-05-01 | 15
2 | Two | 2020-04-22 | 101
1 | One | 2020-04-20 | 51
3 | Three | 2020-04-25 | 30
4 | Four | 2020-04-27 | 25
如何完成此查询
SELECT Id, Title, CreatedOn, VisitCount FROM Posts
ORDER BY .........
答案 0 :(得分:1)
使用两层order by子句:
SELECT Id, Title, CreatedOn, VisitCount
FROM Posts
ORDER BY
CASE WHEN DATEDIFF(day, CreatedOn, GETDATE()) < 7 THEN 0 ELSE 1 END,
VisitCount DESC;