当前位置: 代码迷 >> Sql Server >> !SQL怎么根据一个表中字典项查询另一个表中的字段,并修改相应的数据
  详细解决方案

!SQL怎么根据一个表中字典项查询另一个表中的字段,并修改相应的数据

热度:126   发布时间:2016-04-27 13:10:05.0
求助!!!SQL如何根据一个表中字典项查询另一个表中的字段,并修改相应的数据
表1
id 描述 标准地址
1 雁塔路30号

2 北山门口村

3 长安路100号

4 地址不详

5 北山门村

6 雁塔南路

表2
id 字典项 标准地址
1 北山门 北山门村 

2 雁塔路 雁塔路

3 雁塔南路 雁塔南路

4 长安路 长安路

5 铁一村 铁炉庙村

6 铁二村 铁炉庙村


SQL中如何做到根据表2中的字典项对表1进行操作,将表1中包含表2字典项的某行的标准地址字段规范为表2中的标准地址字段,使表1达到如下结果:
id 描述 标准地址
1 雁塔路30号 雁塔路

2 北山门口村 北山门村

3 长安路100号 长安路

4 地址不详

5 北山门村 北山门村

6 雁塔南路 雁塔路

五体投地跪拜各位老大帮帮小弟,急啊,求告人指点

------解决方案--------------------
SQL code
 IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = '表1') BEGIN    DROP TABLE 表1 END GO CREATE TABLE 表1 (    id INT,    描述 VARCHAR(100),    标准地址 VARCHAR(100) ) GO  INSERT INTO 表1 SELECT 1,'雁塔路30号','' UNION SELECT 2,'北山门口村','' UNION SELECT 3, '长安路100号','' UNION SELECT 4, '地址不详','' UNION SELECT 5, '北山门村','' UNION SELECT 6, '雁塔南路',''  IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = '表2') BEGIN    DROP TABLE 表2 END GO CREATE TABLE 表2 (    id INT,    字典项 VARCHAR(100),    标准地址 VARCHAR(100) ) GOINSERT INTO 表2SELECT 1, '北山门', '北山门村'  UNIONSELECT 2, '雁塔路', '雁塔路'  UNIONSELECT 3, '雁塔南路', '雁塔南路'  UNIONSELECT 4, '长安路', '长安路'  UNIONSELECT 5, '铁一村', '铁炉庙村'  UNIONSELECT 6, '铁二村', '铁炉庙村'UPDATE 表1 SET 表1.标准地址 = B.标准地址 FROM 表2 AS B WHERE CHARINDEX(B.字典项,表1.描述) > 0SELECT * FROM 表1id    描述    标准地址1    雁塔路30号    雁塔路2    北山门口村    北山门村3    长安路100号    长安路4    地址不详    5    北山门村    北山门村6    雁塔南路    雁塔南路
------解决方案--------------------
update 表1 set 标准地址=b.标准地址
from 表1 a ,表2 b
where b.字典项 like a.描述+'%'
  相关解决方案