云深处 发表于 2016-11-18 03:29:07

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升级到了一个程度之后,就会七搞八搞,一不小心就会踩到错误的小陷阱。
页: [1]
查看完整版本: DB2 学习笔记(1)