表A:
studentId表B:
studentId1,studentId2要求A.studentId=B.studentId1时, 将 相应的B.studentId2的值设给A.studentId实现这个功能的比较好的sql代码

解决方案 »

  1.   

    写了一个,应该是用exists的常规写法吧?
    update A T1 set studentId=(select studentId2 from B where t1.studentId=studentId1)
    where exists(select 1 from studentId2  where t1.studentId=studentId1)
      

  2.   

    字段写错了
    update A T1 set studentId=(select studentId2 from B where t1.studentId=studentId1)
    where exists(select 1 from B where t1.studentId=studentId1)
      

  3.   

    update A set A.studentId = (select B.studentId2 from B where B.studentId1 = A.studentId);
      

  4.   

    同意3楼写法.
    看看可不可以这样写:
    update A T1 set studentId=nvl((select studentId2 from B where t1.studentId=studentId1),studentId)
      

  5.   

    3楼的写法把最后的where条件去掉了,这样会造成A.studentId和B.studentId1等不等于的情况下都更新吧!!
    就好像update A set A.studentId = '1';一样,无条件更新.