我有一张桌子,其中一个字段是日期字段.
我被要求编写一个查询,在A列中返回不同日期(有序)的列表,然后有另一列,比如说日期B,其中B列中的日期是小于A列的最大日期.
MyDateField
2017-01-01
2017-01-01
2017-01-01
2017-01-02
2017-01-02
2017-01-03
2017-01-04
2017-01-05
2017-01-05
2017-01-05
Run Code Online (Sandbox Code Playgroud)
需要回答
2017-01-05 2017-01-04
2017-01-04 2017-01-03
2017-01-03 2017-01-02
2017-01-02 2017-01-01
2017-01-01
Run Code Online (Sandbox Code Playgroud)
如果您使用的是SQL-Server 2012+,那么您可以使用LAG()从表中获取最后一个最大的日期:
SELECT t.date,
LAG(t.date,1) OVER(ORDER BY t.date) as last_biggest_date
FROM (SELECT DISTINCT s.dateField FROM YourTable s) t
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
237 次 |
| 最近记录: |