求一条看似简单的SQL语句(SQL-SERVER2000下)
现在有A表   和B表 
 2表中都含有   id   name   字段      
 现在要选取name   字段    
 要求主要从A表选   但是如果B表中也有这个ID的数据   那么就用B表的name   取代A表的   
 例如 
 A表 
 001      张三 
 002      李四   
 B表       
 001      新张三   
 想得到的结果是 
 001   新张三 
 002   李四     
 希望高手指点!
------解决方案--------------------select * from B  
 union  
 select * from A where not exists(select 1 from B where id=A.id)
------解决方案--------------------select A.id,isnull(B.name,A.name)name from A left join B on A.id=B.id
------解决方案--------------------    select  A.id , (CASE WHEN B.name  IS NOT NULL THEN B.name  ELSE A.name END ) AS NAME 
 from A left outer join B  
 ON A.id=B.id
------解决方案--------------------declare @A table(ID varchar(4),Name varchar(8)) 
 insert into @A select  '001 ', '张三 ' 
 insert into @A select  '002 ', '李四 '   
 declare @B table(ID varchar(4),Name varchar(8)) 
 insert into @B select  '001 ', '新张三 '   
 select * from @B  
 union  
 select * from @A a where not exists(select 1 from @B where id=A.id)   
 /* 
 ID   Name      
 ---- --------  
 001  新张三 
 002  李四 
 */
------解决方案--------------------Select A表.id,isnull(B表.name,A表.name) From A表  
     Left join B表 A表.id = B表.id
------解决方案--------------------select id,name from B  
 union  
 select id,name from A where not exists(select 1 from B where id=A.id)