日期:2014-05-17  浏览次数:20516 次

感觉有点难。
USE [HMGas]
GO
/****** 对象:  Table [dbo].[clientaddress]    脚本日期: 06/13/2013 11:13:47 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[clientaddress](
[clientcode] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[depcode] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[region] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[address] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]

USE [HMGas]
GO
/****** 对象:  Table [dbo].[ClientRegion]    脚本日期: 06/13/2013 11:14:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[ClientRegion](
[depcode] [int] NULL,
[region] [nvarchar](500) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]


就像上图。谁能帮我把clientAddress表里面的depcode =对应的clientregion表的 depcode填上去



------解决方案--------------------
update clientAddress
set depcode=clientregion.depcode
from clientregion
where charindex(clientregion.depcode,address)>0

这样?
------解决方案--------------------
那你能用一楼建议的方法,应该可以处理掉大部分的数据。 剩下的只能具体比对,手动更新了。
------解决方案--------------------
引用:
Quote: 引用:

update clientAddress
set depcode=clientregion.depcode
from clientregion
where charindex(clientregion.depcode,address)>0

这样?




像这种数据数据,Charindex 就不行了。能不能先找到第一个非中文的符号,然后去掉后面的内容,在把剩下前面的内容做charindex ,这样能修改掉很多、
上面红色的那个不会写 

你也可以取address的前面非数字的去匹配