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
楼主要求的是最小级匹配