!SQL怎么根据一个表中字典项查询另一个表中的字段,并修改相应的数据
求助!!!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 雁塔南路 雁塔路
五体投地跪拜各位老大帮帮小弟,急啊,求告人指点
------解决方案--------------------
表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) ) GO INSERT INTO 表2 SELECT 1, '北山门', '北山门村' UNION SELECT 2, '雁塔路', '雁塔路' UNION SELECT 3, '雁塔南路', '雁塔南路' UNION SELECT 4, '长安路', '长安路' UNION SELECT 5, '铁一村', '铁炉庙村' UNION SELECT 6, '铁二村', '铁炉庙村' UPDATE 表1 SET 表1.标准地址 = B.标准地址 FROM 表2 AS B WHERE CHARINDEX(B.字典项,表1.描述) > 0 SELECT * FROM 表1 id 描述 标准地址 1 雁塔路30号 雁塔路 2 北山门口村 北山门村 3 长安路100号 长安路 4 地址不详 5 北山门村 北山门村 6 雁塔南路 雁塔南路
------解决方案--------------------
update 表1 set 标准地址=b.标准地址
from 表1 a ,表2 b
where b.字典项 like a.描述+'%'