回 帖 发 新 帖 刷新版面

主题:[讨论]如何---分解字符串,并更新相应的值!?

有一个数据表a:
id         address                      zip

01       北京市海淀区中关村大街         100055

02       北京市海淀区中关村大街         100051

03       北京市海淀区中关村大街         100082



b表
id         address                      zip

01       北京市海淀区中关村大街         100080

02       北京市海淀区中关村大街         100081

03       北京市海淀区中关村大街         100082

如何将‘北京市海淀区中关村大街’一个个拆开,与另一个标准表b表的address进行对照,如果address列值一样,更新zip的值

回复列表 (共4个回复)

沙发

什么叫分开,地址不就是北京市海淀区中关村大街?

板凳

意思不太清楚
update a set zip=b.zip
from a,b where a.id=b.id and a.address =b.address

3 楼


但是有的时候address 只有‘中关村大街’那怎么对阿?!请指教

4 楼

可不可以拆开字符串?

CREATE FUNCTION f_splitSTR(
@s     varchar(8000),  
@split  varchar(10)    
)RETURNS TABLE
AS
--SELECT TOP 8000 ID=IDENTITY(int,1,1) INTO dbo.tb_splitSTR  -
--FROM syscolumns a,syscolumns b

RETURN(
 SELECT address=CAST(SUBSTRING(@s,1,CHARINDEX(@split,@s+@split,1)-1) as varchar(100))
 FROM a
 WHERE col002<=LEN(@s+'a') 
  AND CHARINDEX(@split,@s+@split,1)=1)
--drop function f_splitSTR
GO

我来回复

您尚未登录,请登录后再回复。点此登录或注册