none
Comcatenando, convertendo e formatando campos RRS feed

  • Pergunta

  • Como eu faço para que na expressao abaixo para que o caso do valor de num_Alimentador tiver apenas um dígito, que seja acrescentado um '0' a esquerda do mesmo

     

    Code Snippet

    SELECT  cod_SE + CONVERT(VARCHAR(3), num_Alimentador) AS Alimentador
    FROM     T_Interrupcoes
    GROUP BY cod_SE + CONVERT(VARCHAR(3), num_Alimentador)
    ORDER BY Alimentador

     

     

     

    Nota: num_Alimentador é um campo int
    quinta-feira, 31 de julho de 2008 22:44

Respostas

  • Boa Noite,

     

    Acho mais interessante realizar essa conversão na aplicação e não no SQL Server. Não é interessante gastar recursos de banco de dados que poderiam fazer uma query ficar mais rápida para formatar uma consulta que uma aplicação poderia fazer melhor e mais eficiente. Em todo o caso, segue a opção:

     

    Code Snippet

    SELECT cod_SE + RIGHT(('00' + CONVERT(VARCHAR(3), num_Alimentador)),3) AS Alimentador

    FROM T_Interrupcoes

    GROUP BY cod_SE + RIGHT(('00' + CONVERT(VARCHAR(3), num_Alimentador)),3)

    ORDER BY Alimentador

     

    Acho que você poderia fazer algumas alterações

     

    Code Snippet

    SELECT DISTINCT cod_SE + RIGHT(('00' + CONVERT(VARCHAR(3), num_Alimentador)),3) AS Alimentador

    FROM T_Interrupcoes

    ORDER BY Alimentador

     

    [ ]s,

     

    Gustavo

    quinta-feira, 31 de julho de 2008 23:09
  • Olá Ivan,

     

    Desculpe. Acho que digitei rápido demais e testei de menos.

    Fiz as alterações no código. Verifique se agora está de acordo.

     

    [ ]s,

     

    Gustavo

    sexta-feira, 1 de agosto de 2008 03:20

Todas as Respostas

  • Boa Noite,

     

    Acho mais interessante realizar essa conversão na aplicação e não no SQL Server. Não é interessante gastar recursos de banco de dados que poderiam fazer uma query ficar mais rápida para formatar uma consulta que uma aplicação poderia fazer melhor e mais eficiente. Em todo o caso, segue a opção:

     

    Code Snippet

    SELECT cod_SE + RIGHT(('00' + CONVERT(VARCHAR(3), num_Alimentador)),3) AS Alimentador

    FROM T_Interrupcoes

    GROUP BY cod_SE + RIGHT(('00' + CONVERT(VARCHAR(3), num_Alimentador)),3)

    ORDER BY Alimentador

     

    Acho que você poderia fazer algumas alterações

     

    Code Snippet

    SELECT DISTINCT cod_SE + RIGHT(('00' + CONVERT(VARCHAR(3), num_Alimentador)),3) AS Alimentador

    FROM T_Interrupcoes

    ORDER BY Alimentador

     

    [ ]s,

     

    Gustavo

    quinta-feira, 31 de julho de 2008 23:09
  •  

    Gustavo

     

    Vou seguir o seu conselho. mas no seu exemplo, os digitos a esquerda do último a direita, quando existirem serão substituídos por '00', o que modifica os dados do registro.

    Se 351 retorna 001, não é o que eu quero.

     

    O que eu quero é que quando o registro for formado por apenas um dígito, seja colocado a esquerda dele um zero.

    Exemplo: 1 retorna  01

       23 retorna  23

     437 retorna 437

     

    Obrigado.

     

    sexta-feira, 1 de agosto de 2008 01:31
  • Olá Ivan,

     

    Desculpe. Acho que digitei rápido demais e testei de menos.

    Fiz as alterações no código. Verifique se agora está de acordo.

     

    [ ]s,

     

    Gustavo

    sexta-feira, 1 de agosto de 2008 03:20
  • Gustavo,

     

    Obrigado. Como falei vou seguir o seu conselho.

     

     

    sexta-feira, 1 de agosto de 2008 17:10