none
Eliminar Zero RRS feed

  • Pergunta

  • Amigos bom dia!

    A SQL abaixo me retornar zeros a direita, porem o codigo correto do atendimento começa com A.

    SQL 

    SELECT
    CONVERT(VARBINARY(MAX), HHS.CODIGO)AS 'COD_ALFA'

    FROM HIS

    Resultado

    0x0000000000AAB303
    0x0000000000AAB304
    0x0000000000AAB305
    0x0000000000AAB306
    0x0000000000AAB307
    0x0000000000AAB308

    Resultado esperado e eliminar os Zero

    AAB303
    AAB304
    AAB305
    AAB306
    AAB307
    AAB308

    obrigado amigos

    quarta-feira, 5 de agosto de 2020 13:59

Respostas

  • Bom dia,

    Se a quantidade caracteres for padrão, você pode utilizar a função a RIGHT:

    Ex.:

    SELECT RIGHT('0x0000000000AAB303',6)

    quarta-feira, 5 de agosto de 2020 14:10
  • Ronnie,

    Agora eu fiquei na dúvida, você no primeiro post esta apresentando um Select fazendo conversão para Varbinary(), mas no outro post destacou que a coluna é BigInt.

    Sinceramente eu não entendi, pois os dados que estão sendo apresentados na imagem, estão no formato hexadecimal.

    Para tentar representar o que você esta postando, eu declarei um Select...Values passando três coluna, sendo eles Varbinary, BigInt e Caracterer, ao realizar o Select e tentar aplicar a conversão nos valores que estão declarados como string fazendo as respectivas conversões você vai poder perceber que os dados são convertidos para Varbinary, BigInt e a última coluna eu estou extraindo somente a parte que deseja, no caso a coluna BigInt os valores são repassados para o formato numérico, já a coluna BigIntConvertida inicialmente declarada como String nos permite fazer uso de funções caracteres.

    No mesmo Select tomei como base uma possível padronização dos dados para justamente extrair o que você precisa deixando somente a parte final, fazendo uso da função Replace().

    Será que este raciocínio poderá lhe ajudar:

    Select Convert(VarBinary(Max),ColunaVarbinary) As ColunaVarBinary, 
           Convert(BigInt,ColunaBigInt) As BigInt, 
           Replace(ColunaBigIntConvertida,'0x0000000000','') As ReplaceColunaBigIntConvertida
    From 
     (Values('0x0000000000AAB303',0x0000000000AAB303,'0x0000000000AAB303'),
            ('0x0000000000AAB304',0x0000000000AAB304,'0x0000000000AAB304'),
            ('0x0000000000AAB305',0x0000000000AAB305,'0x0000000000AAB305'),
            ('0x0000000000AAB306',0x0000000000AAB306,'0x0000000000AAB306'),
            ('0x0000000000AAB307',0x0000000000AAB307,'0x0000000000AAB307'),
            ('0x0000000000AAB308',0x0000000000AAB308,'0x0000000000AAB308')) 
    As Tabela (ColunaVarbinary, ColunaBigInt,ColunaBigIntConvertida)
    Go        

    Agora eu lhe pergunto:

    1 - Você tem um padrão na formatação destes dados?

    2 - Tem certeza que esta utilizando o tipo de dados BigInt?

    3- Já tentou converter para um tipo de dados Varchar() ou Char()?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    quarta-feira, 5 de agosto de 2020 17:11
  • Segue Print.

    preciso retirar os zeros , usando essa opção

    SELECT RIGHT('0x0000000000AAB303',6) 

    ele converte em numero.


    • Editado Ronnie Von quarta-feira, 5 de agosto de 2020 14:35
    • Marcado como Resposta Ronnie Von quarta-feira, 5 de agosto de 2020 17:48
    quarta-feira, 5 de agosto de 2020 14:34

Todas as Respostas

  • Bom dia,

    Se a quantidade caracteres for padrão, você pode utilizar a função a RIGHT:

    Ex.:

    SELECT RIGHT('0x0000000000AAB303',6)

    quarta-feira, 5 de agosto de 2020 14:10
  • Jovem olhando a estrutura da tabela, a mesma foi criado dessa forma  [CODIGO] [bigint] NULL,

    já fiz varias conversão e nao retira os zero.

    quarta-feira, 5 de agosto de 2020 14:24
  • Pode dar select somente nesta coluna e colocar o print do resultado ?
    quarta-feira, 5 de agosto de 2020 14:30
  • Segue Print.

    preciso retirar os zeros , usando essa opção

    SELECT RIGHT('0x0000000000AAB303',6) 

    ele converte em numero.


    • Editado Ronnie Von quarta-feira, 5 de agosto de 2020 14:35
    • Marcado como Resposta Ronnie Von quarta-feira, 5 de agosto de 2020 17:48
    quarta-feira, 5 de agosto de 2020 14:34
  • Entendi, achei que era para remover a esquerda.
    quarta-feira, 5 de agosto de 2020 14:43
  • Eu tb, depois que fui descobrir que ela foi criada dessa forma, pois fiz o teste e converteu em fez de eliminar.

    Vamos tentando.


    • Editado Ronnie Von quarta-feira, 5 de agosto de 2020 14:56
    quarta-feira, 5 de agosto de 2020 14:45
  • Ronnie,

    Agora eu fiquei na dúvida, você no primeiro post esta apresentando um Select fazendo conversão para Varbinary(), mas no outro post destacou que a coluna é BigInt.

    Sinceramente eu não entendi, pois os dados que estão sendo apresentados na imagem, estão no formato hexadecimal.

    Para tentar representar o que você esta postando, eu declarei um Select...Values passando três coluna, sendo eles Varbinary, BigInt e Caracterer, ao realizar o Select e tentar aplicar a conversão nos valores que estão declarados como string fazendo as respectivas conversões você vai poder perceber que os dados são convertidos para Varbinary, BigInt e a última coluna eu estou extraindo somente a parte que deseja, no caso a coluna BigInt os valores são repassados para o formato numérico, já a coluna BigIntConvertida inicialmente declarada como String nos permite fazer uso de funções caracteres.

    No mesmo Select tomei como base uma possível padronização dos dados para justamente extrair o que você precisa deixando somente a parte final, fazendo uso da função Replace().

    Será que este raciocínio poderá lhe ajudar:

    Select Convert(VarBinary(Max),ColunaVarbinary) As ColunaVarBinary, 
           Convert(BigInt,ColunaBigInt) As BigInt, 
           Replace(ColunaBigIntConvertida,'0x0000000000','') As ReplaceColunaBigIntConvertida
    From 
     (Values('0x0000000000AAB303',0x0000000000AAB303,'0x0000000000AAB303'),
            ('0x0000000000AAB304',0x0000000000AAB304,'0x0000000000AAB304'),
            ('0x0000000000AAB305',0x0000000000AAB305,'0x0000000000AAB305'),
            ('0x0000000000AAB306',0x0000000000AAB306,'0x0000000000AAB306'),
            ('0x0000000000AAB307',0x0000000000AAB307,'0x0000000000AAB307'),
            ('0x0000000000AAB308',0x0000000000AAB308,'0x0000000000AAB308')) 
    As Tabela (ColunaVarbinary, ColunaBigInt,ColunaBigIntConvertida)
    Go        

    Agora eu lhe pergunto:

    1 - Você tem um padrão na formatação destes dados?

    2 - Tem certeza que esta utilizando o tipo de dados BigInt?

    3- Já tentou converter para um tipo de dados Varchar() ou Char()?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]


    quarta-feira, 5 de agosto de 2020 17:11
  • Junior essa tabela e a consulta e de um sistema antigo que temos aqui, por isso eu errei, porem eu vi depois a estrutura dela, vou verificar aqui e já retorno.

    Obrigado.

    quarta-feira, 5 de agosto de 2020 17:17
  • Amigos muito obrigado pela ajuda de sempre.

    Conseguimos resolver.

    quarta-feira, 5 de agosto de 2020 17:48
  • Ronnie,

    Que bom, fico feliz, precisando estamos por aqui.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 5 de agosto de 2020 18:03
  • Valeu Mestre, como sempre muito prestativo.

    quarta-feira, 5 de agosto de 2020 19:13