【发布时间】:2018-03-04 23:21:10
【问题描述】:
我正在尝试使用 date2、date3、date4 列中的最高日期来更新 date1 列。 我有选择语句
SELECT GREATEST(
COALESCE(date2, date3, date4),
COALESCE(date3, date4, date2),
COALESCE(date4, date2, date3)
)
FROM (
SELECT date1,date2,date3,date4
FROM my_table
WHERE date1 is not null and (date1 < date2 or date1 < date3 or date1 < date4);
但我不知道如何将它与更新或合并一起使用??
+------------------+------------------+------------------+------------------+
| date1 | date2 | date3 | date4 |
+------------------+------------------+------------------+------------------+
| 2017-04-13 16:54 | 2017-04-13 16:57 | | 2016-06-16 |
| 2017-04-13 15:41 | | 2017-04-13 15:42 | 2016-06-16 |
| 2017-04-13 15:43 | 2018-01-10 14:23 | 2017-04-13 15:41 | |
| 2017-04-13 16:05 | | 2017-04-13 16:05 | 2016-06-16 |
| 2017-04-13 16:43 | 2017-04-13 16:43 | | 2016-06-16 |
| 2017-04-13 16:52 | 2017-04-13 16:52 | 2017-04-13 16:07 | 2017-04-17 16:07 |
| 2018-01-10 14:20 | | 2018-01-10 14:23 | |
| 2017-09-27 14:54 | 2015-09-08 09:56 | 2017-09-27 14:54 | 2015-03-13 |
| 2017-06-16 13:38 | | 2017-06-16 13:39 | |
+------------------+------------------+------------------+------------------+
更新/合并后我想要类似的东西
+------------------+------------------+------------------+------------------+
| date1 | date2 | date3 | date4 |
+------------------+------------------+------------------+------------------+
| 2017-04-13 16:57 | 2017-04-13 16:57 | | 2016-06-16 |
| 2017-04-13 15:42 | | 2017-04-13 15:42 | 2016-06-16 |
| 2018-01-10 14:23 | 2018-01-10 14:23 | 2017-04-13 15:41 | |
| 2017-04-13 16:05 | | 2017-04-13 16:05 | 2016-06-16 |
| 2017-04-13 16:43 | 2017-04-13 16:43 | | 2016-06-16 |
| 2017-04-17 16:07 | 2017-04-13 16:52 | 2017-04-13 16:07 | 2017-04-17 16:07 |
| 2018-01-10 14:23 | | 2018-01-10 14:23 | |
| 2017-09-27 14:54 | 2015-09-08 09:56 | 2017-09-27 14:54 | 2015-03-13 |
| 2017-06-16 13:39 | | 2017-06-16 13:39 | |
+------------------+------------------+------------------+------------------+
【问题讨论】: