我有一个表是客户的地址表,但用户的地址前面有一些固定的代码(是字符型的),代码的长度又不相等,我如何来截取代码后面的用户的真实地址呢?比如:
成都锦江区标准地址锦江一路53号
内江市中区一段标准地址环城路153号我要将标准地址及以前的去掉,只留后面的真实地址,如何处理?谢谢大家!

解决方案 »

  1.   

    create table t_address (
    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号
      

  2.   

    create table tb(col varchar(50))
    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
      

  3.   

    declare @a table(name varchar(100))
    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 行)
    */