我有一个表是客户的地址表,但用户的地址前面有一些固定的代码(是字符型的),代码的长度又不相等,我如何来截取代码后面的用户的真实地址呢?比如:
成都锦江区标准地址锦江一路53号
内江市中区一段标准地址环城路153号我要将标准地址及以前的去掉,只留后面的真实地址,如何处理?谢谢大家!
成都锦江区标准地址锦江一路53号
内江市中区一段标准地址环城路153号我要将标准地址及以前的去掉,只留后面的真实地址,如何处理?谢谢大家!
address varchar(2000))insert t_address
select '成都锦江区标准地址锦江一路53号'
union all
select '内江市中区一段标准地址环城路153号'select substring(address,charindex('标准地址',address)+4,len(address)) from t_address
drop table t_address
-------------------------------------------
结果
锦江一路53号
环城路153号
insert into tb values('成都锦江区标准地址锦江一路53号')
insert into tb values('内江市中区一段标准地址环城路153号')
goselect col , substring(col,charindex('标准地址',col)+4,len(col)) 标准地址
from tb
where charindex('标准地址',col) > 0/*
col 标准地址
-------------------------------- ------------
成都锦江区标准地址锦江一路53号 锦江一路53号
内江市中区一段标准地址环城路153号 环城路153号
(所影响的行数为 2 行)
*/
drop table tb
insert @a
select '内江市中区一段标准地址环城路153号'
union all
select '成都锦江区标准地址锦江一路53号'
select substring(name,patindex('%标准地址%',name)+4,len(name)) as address from @a/*(所影响的行数为 2 行)address
----------------------------------------------------------------------------------------------------
环城路153号
锦江一路53号(所影响的行数为 2 行)
*/