sql – db2:使用不同的表上的select更新多个行和字段
发布时间:2020-12-12 07:06:41 所属栏目:MsSql教程 来源:网络整理
导读:是否可以使用不同表(B.c B.d)的值c和d为A的所有行增加表(A.a和A.b)的字段a和b,其中A.x == B.z? 我对此查询感到疯狂 解决方法 DB2和SQL标准在UPDATE语句中没有FROM子句. 所以你必须明确地将步骤分开 识别要修改的行和 计算新值. . 这是一个例子: UPDATE TABL
是否可以使用不同表(B.c B.d)的值c和d为A的所有行增加表(A.a和A.b)的字段a和b,其中A.x == B.z?
我对此查询感到疯狂 解决方法DB2和SQL标准在UPDATE语句中没有FROM子句.所以你必须明确地将步骤分开 >识别要修改的行和 . 这是一个例子: UPDATE TABLE A SET A.FLD_SUPV = ( SELECT B.FLD_SUPV FROM TABLEA A,TABLEB B,TABLEC C,TABLED D WHERE A.FLD1= B.FLD1 AND A.FLD_DT >= B.FLD_FM_DT AND A.FLD_DT <= B.FLD_THRU_DT AND A.FLD_DT > D.FLD_THRU_DT AND A.FLD_DT < C.FLD_EFF_DT ) WHERE EXISTS ( SELECT B.FLD_SUPV FROM TABLEA A,TABLED D WHERE A.FLD1= B.FLD1 AND A.FLD_DT >= B.FLD_FM_DT AND A.FLD_DT <= B.FLD_THRU_DT AND A.FLD_DT > D.FLD_THRU_DT AND A.FLD_DT < C.FLD_EFF_DT ) 要更新两个字段,您可以使用如下示例: UPDATE table1 t1 SET (col1,col2) = ( SELECT col3,col4 FROM table2 t2 WHERE t1.col8=t2.col9 ) 优化器将看到SET和FROM子句中的子查询是相同的,它应该在内部执行计划中合并它们. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |