帮忙写一个SQL语句。 Update TBL1 
Set  Field1=NULL,    
      Field2 = NULL 
FROM  TBL1,TBL2
WHERE TBL1.id= @p and tbl1.id = tbl2.id上面这个语句中,需要判断
if tbl2.fid = a
      Field1=NULL,    
      Field2 = NULL 
else
      Field1=@f1
      Field2 = @f2

这个SQL如何写? 

解决方案 »

  1.   

    Update TBL1 
    Set   Field1=case when tbl2.fid = 'a' then null else @f1 end ,    
          Field2 = case when tbl2.fid = 'a' then null else @f2 end 
    FROM  TBL1,TBL2 
    WHERE TBL1.id= @p and tbl1.id = tbl2.id 
      

  2.   

    Update TBL1 
    Set  Field1=case when tbl2.fid = 'a' then NULL else  @f1 end,    
          Field2 = case when tbl2.fid = 'a' then NULL else  @f2 end 
    FROM  TBL1,TBL2 
    WHERE TBL1.id= @p and tbl1.id = tbl2.id 
      

  3.   

    Update TBL1 
    Set  Field1=NULL,    
          Field2 = NULL 
    FROM  TBL1,TBL2 
    WHERE TBL1.id= @p and tbl1.id = tbl2.id   and  tbl2.fid = a
    Update TBL1 
    Set  Field1=@f1 
          Field2 = @f2 
    FROM  TBL1,TBL2 
    WHERE TBL1.id= @p and tbl1.id = tbl2.id   and  tbl2.fid <> a
      

  4.   

    Update TBL1 
    Set  Field1=case Field1 when a then null else Field1 end,    
          Field2 = case Field2 when a then null else Field2 end
    FROM  TBL2 
    WHERE TBL1.id= @p and tbl1.id = tbl2.id  
      

  5.   

    Update TBL1 
    Set  Field1=case when tbl2.fid = 'a' then NULL else  @f1 end,    
          Field2 = case when tbl2.fid = 'a' then NULL else  @f2 end 
    FROM  TBL1,TBL2 
    WHERE TBL1.id= @p and tbl1.id = tbl2.id
      

  6.   

    Update a 
    Set   Field1=case when b.fid = 'a' then null else @f1 end ,    
          Field2=case when b.fid = 'a' then null else @f2 end 
    FROM  TBL1 a,TBL2 b
    WHERE a.id= @p and a.id = b.id