Oracle用一个表的一个字段值去更新另一张表的某个字段值

  • Post author:
  • Post category:其他



我是这么写的:


 UPDATE TABLE1 T1 SET T1.COL11=
 SUBSTR(
(SELECT TO_CHAR(T2.ENDTIME,'YYYYMMDD') FROM TABLE2 T2 WHERE T1.MAPCODE = T2.PROJECTID AND T2.MAPSHEETFLAG IS NULL),0,6)
 WHERE EXISTS 
(SELECT TO_CHAR(T2.ENDTIME,'YYYYMMDD') FROM TABLE2 T2 WHERE T1.MAPCODE = T2.PROJECTID AND T2.MAPSHEETFLAG IS NULL);


这里,表TABLE1即T1是图幅元数据表,表TABLE2即T2是范围线工程表。现在需要将T2的EndTime(包括年月日时分秒在内的完整的时间类型)格式化为YYYYMMDD形式,并取前6位,即年月(如201705),赋值给T1的COL1字段。赋值的条件是T1的MAPCODE与T2的PROJECTID相等,且T2的MAPSHEETFLAG标记值不为空,且查询结果存在。



版权声明:本文为a_dev原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。