首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL2000 两表字段对比后UPDATE符合条件的字段,该怎么解决

2012-02-20 
SQL2000 两表字段对比后UPDATE符合条件的字段库中有2个表,A表和B表A表中字段如下IDAREACITYID1北京朝阳区N

SQL2000 两表字段对比后UPDATE符合条件的字段
库中有2个表,A表和B表
A表中字段如下
ID   AREA                                     CITYID
1     北京朝阳区                           NULL
2.   广东省深圳市南山区1         NULL
3.   广东省深圳市福田区           NULL
4.   广东省深圳市南山区2         NULL
5.   广东省                                   NULL
B表字段
ID     CITY                                   SZCODE
1.     北京市                               110000
2.     朝阳区                               110105
3.     广东省                               440000
4.     深圳市                               440300
5.     南山区                               440305
现在想将A表里的CITYID   用B表里的SZCODE填充
根据A表的AREA和B表的CITY对比后进行插入CITYID
A表数据大约30万数据,而B表就是中国行政区域划分数据,大约3500数据
A表替换后的效果如下:
ID   AREA                                     CITYID
1     北京朝阳区                           NULL(110105)
2.   广东省深圳市南山区1         NULL(440305)
3.   广东省深圳市福田区           NULL(440303)
4.   广东省深圳市南山区2         NULL(440305)
5.   广东省                                   NULL(440000)
刚学SQL,请大家帮忙.分数不多
请详细写清,在线等待....

[解决办法]
http://community.csdn.net/Expert/topic/4839/4839265.xml?temp=.0194971
--参考
[解决办法]
update A set a.CITYID=b.SZCODE from A a,B b where a.ID=b.ID

or

update A set a.CITYID=b.SZCODE from A a inner join B b on a.ID=b.ID
[解决办法]
--try

update A set CITYID=(select max(B.SZCODE) as SZCODE from B where charindex(B.CITY, A.AREA)> 0)
[解决办法]
update A set CITYID=B.SZCODE
from B
where charindex(B.CITY, A.AREA)> 0
[解决办法]
update A set a.CITYID=b.SZCODE
from A a
inner join B b on a.ID=b.ID and charindex(B.CITY, A.AREA)> 0

[解决办法]
--更正:
update A set a.CITYID=b.SZCODE
from A a, B b
where charindex(B.CITY, A.AREA)> 0
[解决办法]
select a.*,b.SZCODE,charindex(CITY,AREA) as a into # from a,b where charindex(CITY,AREA)> 0



update a set CITYID= SZCODE from # t where a.AREA=t.AREA and not exists(select * from # where id=t.id and a> t.a)

drop table #

select * from a

--result

1北京朝阳区110105
2广东省深圳市南山区1440305
3广东省深圳市福田区440300
4广东省深圳市南山区2440305
5广东省440000


楼主要求的是最小级匹配

热点排行