表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.描述+'%'