UPDATE STUDENT 
SET Name='angie'
WHERE No=(SELECT No FROM A WHERE Status=0)
这是个更新语句,我想获取中间值,即(SELECT No FROM A WHERE Status=0)此语句中的值,但是不想通过先SELECT 后UPDATE两条语句,或者存储过程传参来实现,只想一条更新语句,且能获取中间值,不知道这种想法是否合理?

解决方案 »

  1.   

    UPDATE STUDENT 
    SET Name='angie' 
    WHERE No in (SELECT No FROM A WHERE Status=0) 
      

  2.   


    --1
    UPDATE STUDENT 
    SET Name='angie' 
    WHERE No in (SELECT No FROM A WHERE Status=0) 
    --2
    UPDATE STUDENT 
    SET Name='angie' 
    from STUDENT m,a
    where m.no = a.no and a.Status=0
      

  3.   

    UPDATE STUDENT t
    SET Name='angie' 
    WHERE exists(SELECT 1 FROM A WHERE Status=0 and no=t.no) 
      

  4.   


    UPDATE STUDENT 
    SET Name='angie' 
    from student s,A
    WHERE s.No=A.NO and s.status=0
      

  5.   

    UPDATE STUDENT 
    SET Name='angie' FROM A WHERE STUDENT.no=no and Status=0
      

  6.   

    UPDATE STUDENT 
    SET Name='angie' 
    FROM A
    WHERE STUDENT.No=A.No AND A.Status=0