根据不同的条件来进行不同的UPDATE
各位朋友:小弟的表1如下: 
 id      name      card_id            date 
 1    李三      a123                     2007-5-11 
 10 李四      b234                     2007-6-11 
 100   王五      c345                     2007-6-12   
 问题1:首先取“date”这个字段的年份和月份,组成长度为4年字符串,如“2007-5-11”,则变成“0705”,,然后根据的id长度作判断,如果id长度为1的话,就在原来的基础上加三个零“000”,长度为2的话,就在原来的基础上加两个零“00”,长度为3的话,就加1个零“0”   
 最终结果如表2: 
 id              name         card_id            date 
 07050001   李三     a123                     2007-5-11 
 07060010   李四     b234                     2007-6-11 
 07060100   王五     c345                     2007-6-12     
 然后,假如有一表3,如下: 
 name                  id 
 李三  1 
 李四            2 
 王五            3   
 问题2:能不能联合表2和表3,用name来联合表2和表3,用表2的ID更新表3的ID,,更新后,表3的结果如下表:   
 name                  id 
 李三  07050001 
 李四            07060010 
 王五            07060100     
 请问以上两个复杂的SQL语句能解决吗?请各位朋友赐教,谢谢!!!
------解决方案--------------------1、     
 create table 表名 ([id] varchar(100), name varchar(100), card_id varchar(100), [date] datetime)   
 insert into 表名 (id,name,card_id,[date]) select 1,    '李三 ',   'a123 ',       '2007-5-11 ' 
 insert into 表名 select 10,   '李四 ',   'b234 ',       '2007-6-11 ' 
 insert into 表名 select 100,  '王五 ',   'c345 ',       '2007-6-12 '     
 --你需要的update语句 
 update 表名 set id =  right(convert(varchar(6),[date],112),4) + right( '0000 ' + cast(id as varchar(100)),4)    
 select * from 表名   
 drop table 表名