none
Varios Replaces RRS feed

  • Pergunta

  •  

    Caros amigos estou com uma dificuldade em fazer replaces continuos no sql server por exemplo

     

     

    print replace (@fone, '-' ,' ')

     

    neste caso ele pegará minha variavel @fone e procurará todos os - que estiver nela e retornará nulo

    entao por exemplo um telefone q tenha 3340-1234 ficará 33401234

     

    o problema é q eu preciso eliminar outros caracteres da minha variavel como por exemplo

     

    0xx11 3340-1234 nesse caso eu queria q ficasse sem os - e sem os xx ---> 011 33301234

     

     

    já tentei de varias maneiras como 

    print replace (@fone, '-' ,' ')

    and

    print replace (@fone, 'xx' ,' ')

     

    ou

    print replace (@fone, '-','xx' ,' ')

     

     

    mas nada deu certo

     

    agradeço desde já

    segunda-feira, 29 de setembro de 2008 19:30

Respostas

  • Boa Tarde,

     

    O segredo é utilizar a sugestão de vários replaces. Ex:

     

    Code Snippet

    declare @fone varchar(20)

    set @fone = '0xx11 3340-1234'

    set @fone = replace(@fone,'xx','')

    set @fone = replace(@fone,'-','')

    print @fone

     

     

    [ ]s,

     

    Gustavo

    segunda-feira, 29 de setembro de 2008 21:21

Todas as Respostas

  • Besson,

     

    Você deseja uitlizar Replace dentro de Replace!!!

    segunda-feira, 29 de setembro de 2008 20:02
  • Boa Tarde,

     

    O segredo é utilizar a sugestão de vários replaces. Ex:

     

    Code Snippet

    declare @fone varchar(20)

    set @fone = '0xx11 3340-1234'

    set @fone = replace(@fone,'xx','')

    set @fone = replace(@fone,'-','')

    print @fone

     

     

    [ ]s,

     

    Gustavo

    segunda-feira, 29 de setembro de 2008 21:21
  • Mas e se dissermos que esse @fone seja na verdade uma lista com varios telefones e os replaces devem acontecer com todos, isso também funciona??

     

    terça-feira, 30 de setembro de 2008 12:01
  • Bom Dia,

     

    O REPLACE irá substituir todos os caractéres da lista. Para ele, não há distinção entre um telefone ou vários telefones se todos estiverem na mesma string.

     

    [ ]s,

     

    Gustavo

    terça-feira, 30 de setembro de 2008 12:14
  • Eu acho mais facil usar assim:

    declare @fone varchar(20)

    set @fone = '0xx11 3340-1234'

    set @fone = replace(replace(@fone,'xx',''), '-','')

    print @fone
    quarta-feira, 1 de outubro de 2008 11:24