select left(right(PlaceFrom,charindex(',',PlaceFrom)+1),charindex(',',right(PlaceFrom,charindex(',',PlaceFrom)+1))-1) from member

解决方案 »

  1.   


    declare @t table(code varchar(50))
    insert into @t select '中国,北京市' 
    insert into @t select '中国,江苏省,镇江' 
    insert into @t select '中国,广东省,深圳' 
    insert into @t select '中国,重庆市' 
    insert into @t select '中国,黑龙江省,哈尔滨市'select reverse(parsename(reverse(replace(code,',','.')),2)) as code from @t 
    /*
    code
    ----------------
    北京市
    江苏省
    广东省
    重庆市
    黑龙江省
    */
      

  2.   


    create table member(PlaceFrom varchar(30))
    go
    insert member select '中国,北京市'
    insert member select '中国,江苏省,镇江'
    insert member select '中国,广东省,深圳'
    insert member select '中国,重庆市'
    goDECLARE @str varchar(8000) 
    SET @str = '' 
    SELECT @str = @str + ',' + PlaceFrom FROM (select PlaceFrom=substring(PlaceFrom,charindex(',',PlaceFrom )+1,charindex(',',PlaceFrom+',',charindex(',',PlaceFrom )+1)-charindex(',',PlaceFrom )-1) from member) a 
    select  STUFF(@str, 1, 1, '') 
    go
    /*
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
    北京市,江苏省,广东省,重庆市(所影响的行数为 1 行)
    */
    drop table member
      

  3.   

    create table tb(PlaceFrom varchar(50))
    insert into tb select '中国,北京市' 
    insert into tb select '中国,江苏省,镇江' 
    insert into tb select '中国,广东省,深圳' 
    insert into tb select '中国,重庆市' 
    insert into tb select '中国,黑龙江省,哈尔滨市'
    goselect PlaceFrom = substring(PlaceFrom , charindex(',' ,PlaceFrom) + 1 , charindex(',' ,PlaceFrom , charindex(',' ,PlaceFrom) +1) - charindex(',' ,PlaceFrom) - 1) from tb where charindex(',' ,PlaceFrom , charindex(',' ,PlaceFrom) +1) > 1
    union all
    select PlaceFrom = substring(PlaceFrom , charindex(',' ,PlaceFrom) + 1 , len(placefrom)) from tb where charindex(',' ,PlaceFrom , charindex(',' ,PlaceFrom) +1) = 0drop table tb/*
    PlaceFrom                                          
    -------------------------------------------------- 
    江苏省
    广东省
    黑龙江省
    北京市
    重庆市(所影响的行数为 5 行)
    */
      

  4.   


    select reverse(parsename(reverse(replace(字段名,',','.')),2)) as 字段名 from 表名