none
Retirar Zeros à Esquerda - Campo Texto RRS feed

  • Pergunta

  • Pessoal, 

    Existe alguma função do SQL que tira zeros a esquerda de campos texto ? 

    Exemplo: sem a função ... 000abcd com a função ... abcd 

    Obrigado!
    • Tipo Alterado Gustavo Maia Aguiar terça-feira, 15 de dezembro de 2009 12:35 É uma pergunta e não uma discussão geral
    segunda-feira, 14 de dezembro de 2009 14:54

Respostas

  • Denison,

    esta é uma maneira

    declare @text varchar(20)
    set @text ='00000MCDA00054'
    select substring(@text,patindex('%[a-z,1-9]%',@text),len(@text))


    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marcado como Resposta Denison Soares quinta-feira, 31 de março de 2011 13:57
    segunda-feira, 14 de dezembro de 2009 16:25

Todas as Respostas

  • Denisson,

    pensando rápido, vc pode usar o replace

    select

     

    replace('000aaa','0','')





    Att.


    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 14 de dezembro de 2009 15:05
  • Denison boa tarde,

    Como o Marcelo indicou a função replace substitui todos os zeros pelo caracter informado, q no caso e '',
    certifique-se apenas se na sua coluna possua algum valor com zero q não precise ser substituido.

    caso não tenha a solução do Marcelo é a ideal.


    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino
    segunda-feira, 14 de dezembro de 2009 15:13
  • Então, tem número "0" no meio, depois de caracteres, por exemplo:

    Contrato Número ==> '00000MCDA00054'
    Contrato Número ==> '0000000000FC01'

    Como Faria nesse caso?
    segunda-feira, 14 de dezembro de 2009 16:14
  • Denilson, existem algumas funções q podem ser utilizadas right, substring, stuff  porém precisamos saber
    quantos caracteres a esquerda vc deseja tirar ?
    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino
    segunda-feira, 14 de dezembro de 2009 16:19
  • Denison,

    esta é uma maneira

    declare @text varchar(20)
    set @text ='00000MCDA00054'
    select substring(@text,patindex('%[a-z,1-9]%',@text),len(@text))


    Att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    • Marcado como Resposta Denison Soares quinta-feira, 31 de março de 2011 13:57
    segunda-feira, 14 de dezembro de 2009 16:25
  • Marcelo, o resultado ficou como '54' ...mas acho que o caminho é por aí =D
    segunda-feira, 14 de dezembro de 2009 16:34
  • Denilson, se for todos os zeros a esquerda o exemplo do Marcelo esta perfeito.

    executando o exemplo dele me retornou:

    /*
    --------------------

    MCDA00054

    (1 linha(s) afetadas)

    */


    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino
    segunda-feira, 14 de dezembro de 2009 16:37
  • Ué... Será que é alguma configuração de meu SQL Server? ....está mostrando 54     ='[


    segunda-feira, 14 de dezembro de 2009 16:42
  • Denison,

    vc executou o meu script da maneira que esta e te exibe apenas 54?
    acho que não tem nada relacionado mas qual a versao do seu SQL?

    att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 14 de dezembro de 2009 16:48
  • Isso, copiei, colei e executei... mostra '54' ='[ 

    Minha versão é ==>  Ms Sql Server 2005 Stantard 
    segunda-feira, 14 de dezembro de 2009 17:04
  • denison,

    testei em várias versoes e fuincionou... vc tem outro server sql ai? caso sim tente executar o script nele...


    att.
    Marcelo Fernandes
    MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!
    segunda-feira, 14 de dezembro de 2009 17:36
  • Kramba q doideira... no sql de outro servidor funcionou 

    ...preciso abrir outro post para corrigir essa configuração?
    segunda-feira, 14 de dezembro de 2009 18:03
  • Bom Dia,

    Como as dúvidas são muito próximas, fica a seu critério.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    SQL Server Saturday Night
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!878.entry
    Classifique as respostas. O seu feedback é imprescindível
    terça-feira, 15 de dezembro de 2009 12:45
  • sei que já tem algum tempo que não respondem esse tópico mas que fique para pesquisas futuras

    segue uma funçãozinha sei que não ficou muito bunita mas pelo menos pra servir de base.

    create function dbo.RetiraZeroEsquerda (@campo Varchar(60))
    Returns VARCHAR(60)
    as
    begin
     Declare @flag bit, @cont integer, @var VARCHAR(30)
     SET @cont = 1
     SET @flag = 0
     while (@flag = 0) 
     begin  
       set @var = substring(@campo,@cont,1)
       if @var = '0' 
       begin
        set @cont = @cont+1
       end
       else
        set @flag = 1   
     end 
     
     return SUBSTRING(@CAMPO,@cont,LEN(@CAMPO))
    end
    

     

    segunda-feira, 30 de agosto de 2010 16:53
  • Você poderia usar também:

     

     

    select substring(ColumnName, patindex('%[^0]%',ColumnName), 10) 


     

    Abraço


    • Editado Jardel Morais terça-feira, 6 de setembro de 2011 16:11
    terça-feira, 6 de setembro de 2011 12:02
  • Funcionouuu Beleza 
    quinta-feira, 9 de maio de 2013 13:56
  • select REPLACE(LTRIM(REPLACE('001230001230A', '0', ' ')), ' ', '0')

    retorno: 1230001230A


    Rafael Petinati

    segunda-feira, 7 de abril de 2014 14:10