【发布时间】:2018-12-11 12:15:25
【问题描述】:
得到一个包含FLAG 列(任何字符)和另外两个字段ESD 和TD(两个日期)的表。
FLAG 列的前面必须是字符 E(如果该行的 ESD 不为空),或者如果该行的 TD 不为空,则后跟 T。
注意
-
FLAG永不为空 -
ESD可以为空TD可以同时为空,也可以不同时为空。 -
ESD和TD都可以设置在同一行。 在这种情况下,标志必须是 ExT,其中 x 是 当前标志值。
示例
之前
+-------+-------------+-------------+
| FLAG | ESD | TD |
+-------+-------------+-------------+
| V | 2018/05/01 | (null) |
| D | (null) | (null) |
| V | (null) | (null) |
| V | (null) | 2018/06/31 |
| V | (null) | (null) |
| D | 2018/01/01 | 2018/08/31 |
+-------+-------------+-------------+
之后
+-------+-------------+-------------+
| FLAG | ESD | TD |
+-------+-------------+-------------+
| EV | 2018/05/01 | (null) |
| D | (null) | (null) |
| V | (null) | (null) |
| VT | (null) | 2018/06/31 |
| V | (null) | (null) |
| EDT | 2018/01/01 | 2018/08/31 |
+-------+-------------+-------------+
问题
在 SQL 或 PL/SQL 中获得此结果的最简单方法是什么?
【问题讨论】:
-
你真的要更新存储在表中的值吗?或者只是查询表时它在结果集中的显示方式?
-
我正在尝试在表格中更新它
标签: sql oracle oracle11g sql-update