UPDATE t1
SET t1.avg50 = 1 FROM t2
WHERE t1.ID = (CASE WHEN t2.ID* 5 <= SELECT MAX(ID)FROM t1 THEN t2.ID*5 
ELSE SELECT MAX(ID) FROM t1)

解决方案 »

  1.   

    UPDATE   t1 
    SET   t1.avg50   =   1   FROM   t2 
    WHERE   t1.ID   =   (CASE   WHEN   t2.ID*   5   <=   SELECT   MAX(ID) FROM   t1   THEN   t2.ID*5   
    ELSE   SELECT   MAX(ID)   FROM   t1)
      

  2.   


    --try
    UPDATE   t1 
    SET   t1.avg50   =   1   
    FROM   t2 
    WHERE   t1.ID   =   (CASE   WHEN   t2.ID*   5   <=   (SELECT   MAX(ID)FROM   t1)   THEN   t2.ID*5   
    ELSE   (SELECT   MAX(ID)   FROM   t1) end)
      

  3.   

    这样写
    update a
    set a.avg50 = 1
    from t1 a, t2 b
    where a.ID = b.ID * 5 or a.ID = (select max(ID) from t1)
      

  4.   


    UPDATE  t1   SET   avg50=1   FROM   (SELECT MAX(ID) id FROM t1) a,t2 b   
    WHERE   ID =(CASE  WHEN  b.ID*5<= a.id  THEN b.ID*5  ELSE  a.id end)