DB2 学习笔记(1)

多表关联更新语句

update tbl1
set col_nm = (select a.col_nm from tbl2 a where a.col_cd = tbl1.col_cd)

上面这个语句就可以被执行,而且会自动按照匹配条件a.col_cd = tbl1.col_cd,查询出唯一符合的值,利用查询出来的值来更新tbl1.col_nm,

而如果用普通的update 语句习惯,省略了更新字段值检出语句的tbl1时即如下语句

update tbl1
set col_nm = (select a.col_nm from tbl2 a where a.col_cd = col_cd)就会报错:

SQL0811N The result of a scalar fullselect, SELECT INTO statement, or VALUES INTO statement is more than one row. SQLSTATE=21000

DB2的查询计划没有看到,但是预估应该跟它的语法对应有关系,postgre则会强制要求你不要写东西~

看来当DBTOOL升级到了一个程度之后,就会七搞八搞,一不小心就会踩到错误的小陷阱。

原文地址:https://www.cnblogs.com/niutouzdq/p/2818043.html