【发布时间】:2019-04-04 14:11:53
【问题描述】:
我创建了一个查询,用于从另一个表更新一个表。该字段在给定日期按预期更新。问题是对于其他日期,我现在在我更新的列上获得 NULL 值。如何只为特定日期设置新值而不影响其他日期?
表 A:
| ID | VALUE | ADD_TIME |
-------------------------------------
| 1 | -5 |1/11/2019 10:45:11 am |
表 B:
|AS_OF_DATE| ID | VALUE |
-------------------------
|2/29/2019 | 1 | -4 |
|1/31/2019 | 1 | -4 |
|12/31/2018| 1 | -4 |
期望的输出:
|AS_OF_DATE| ID | VALUE |
-------------------------
|2/29/2019 | 1 | -4 |
|1/31/2019 | 1 | -4 |
|12/31/2018| 1 | -5 |
电流输出:
|AS_OF_DATE| ID | VALUE |
-------------------------
|2/29/2019 | 1 | |
|1/31/2019 | 1 | |
|12/31/2018| 1 | -5 |
我的查询:
update TABLEB
set VALUE =
(
select VALUE from TableA
where ID = '1'
and TABLEB.AS_OF_DATE < TABLEA.ADD_TIME
)
【问题讨论】:
-
TABLEA只有一行?比简单的添加WHERE b.AS_OF_DATE < (select ADD_TIME from TABLEA)到 UPDATE -
请检查您的数据类型:
2/29/2019是无效日期;)
标签: sql oracle sql-update