【发布时间】:2018-03-12 14:16:38
【问题描述】:
我有一个包含 3 个字段的表格。
- 开始时间
- 结束时间
- 身份证
如果结束时间是NULL,我需要替换为相同ID的最近时间。
----------------------------------
| ID | Start_time | End_time |
----------------------------------
| 1 | 2016-01-01 | NULL |
| 2 | 2016-01-01 | 2016-01-02 |
| 1 | 2016-01-02 | 2016-01-03 |
| 1 | 2016-01-03 | 2016-01-04 |
预期输出
---------------------------------
| ID | Start_time | End_time |
---------------------------------
| 1 | 2016-01-01 | 2016-01-02 |
| 2 | 2016-01-01 | 2016-01-02 |
| 1 | 2016-01-02 | 2016-01-03 |
| 1 | 2016-01-03 | 2016-01-04 |
【问题讨论】:
-
您的预期结果与您对其应有的描述不符。如果您需要选择具有相同 ID 的最接近时间,那么对于 ID=1,它应该是
2016-01-03而不是2016-01-02,因为它的 ID=2 -
另外,定义最近时间:它是绝对值最近的,最近的还是最近的?
-
最新的上一个
-
最新的前面基于哪些列?您应该使用一些列/列来定义排序。您可以通过
case when相应地使用 LEAD/LAG 函数。