库中有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