如果我想把
select b.itemid
  from user a
  left join agency b on a.test = b.code
  where length(a.code)>6
  order by b.code
查出来的什UPDATE到user表中的ID列,UPDATE语句要怎样写呢?update user set id=(select b.itemid
  from user a
  left join agency b on a.test = b.code
  where length(a.code)>6
  order by b.code)
可以这样写吗?但会提示缺少右括号

解决方案 »

  1.   

    select b.itemid
      from user a
      left join agency b on a.test = b.code
      where length(a.code)>6
      order by b.code
    这句有多条记录吧?
      

  2.   


    update user set id=(
      select itemid from agency where code=user.test
      and length(a.code)>6
     );
      

  3.   

    上面错了,这个
    update user set id=(
      select itemid from agency where code=user.test
      and length(user.code)>6
     );
      

  4.   

    使用=号期望子查询返回一行
    若只有一行可以不使用order by
    在指定了 TOP-n 时才能在子查询指定 ORDER BY。
      

  5.   

    还有一个问题:更新user表中USERDATA字段,类型为DATA,值为2010-01-01,
    update t_causer t set t.USERDATA=('2010-01-01'),提示类型不匹配,要怎么转换呢?
      

  6.   

    TO_DATE('2010-01-01','YYYY-MM-DD')
      

  7.   


    set ..= to_date('2010-01-01','YYYY-MM-DD');