【发布时间】:2021-01-16 17:19:08
【问题描述】:
我想更新 Date1 列的内容以反映每一行中最旧的日期,除非日期已经过去(Date1
| ID | Date 1 | Date 2 | Date 3 | Date 4 |
|---|---|---|---|---|
| 001 | 01/14/2022 | 01/14/2022 | 01/15/2022 | 01/16/2022 |
| 002 | 04/15/2019 | 04/15/2019 | 01/10/2021 | 01/10/2021 |
我正在使用
update mytable t
set date1 = (
select min(date)
from (values (date2), (date3), (date4)) d(dt)
where dt >= current_date
)
我遇到的唯一问题是 所有 可用日期早于当前日期。在这种情况下,它会用 null 覆盖 date1 列中的值,这并不理想。我希望查询在这些情况下保持 date1 字段不变。
【问题讨论】:
-
请告诉我们更多关于您使用的软件的信息? Postgres 和 SQL?
-
是的,我在 PgAdmin 4 中使用 PostgreSQL。
标签: postgresql sql-update