none
Colocar Zeros a esquerda de um Sinal negativo RRS feed

  • Pergunta

  • bem colegas tem um problema com um select ,como Faço para criar um select que busque um detenminado número em uma tabela coloque doze casa preechendo o restante com zeros, e se for negativo coloque o sinal afrente do primeiro número valido,e retire a virvula   EXE: 0,15  ficaria 000000000015  EXE -3,45 ficaria 00000000-345 obs o sinal negativo deve contar com as dozes casa Pra mim é um desafio e pra vcs grato antecipadamente
    quinta-feira, 1 de julho de 2010 13:37

Respostas

  • Danilo,

    Nao tenho muita experiencia com o Oracle, em SQL seria assim:

    declare @teste as decimal(5,2)
    set @teste = -3.45 
    
    select right(replicate('0',12)+cast(cast(@teste*100 as int) as varchar),12)



    Embora este forum seja dedicado ao SQL Server, talvez algum usuario possa lhe ajudar, recomendo que poste em um forum de Oracle talve ajuda possa ser mais rápida e objetiva.

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba
    • Sugerido como Resposta Rafael S. Melo quinta-feira, 1 de julho de 2010 14:34
    • Marcado como Resposta Fernanda Simões segunda-feira, 5 de julho de 2010 14:26
    quinta-feira, 1 de julho de 2010 14:10
    Moderador

Todas as Respostas

  • bem colegas tem um problema com um select ,como Faço para criar um select que busque um detenminado número em uma tabela coloque doze casa preechendo o restante com zeros, e se for negativo coloque o sinal afrente do primeiro número valido,e retire a virvula   EXE: 0,15  ficaria 000000000015  EXE -3,45 ficaria 00000000-345 obs o sinal negativo deve contar com as dozes casa Pra mim é um desafio e pra vcs grato antecipadamente


    Maiores Informacoes parte do select atual é: gostaria de modificar o Saldo

     SELECT    TO_CHAR( B.SEGMENT4 , '09999999999999999999'), TO_CHAR(B.SEGMENT3, '09999999999999999999') , ' 00000000000000000000 ',
                  '01 ', (NVL(SUM(A.ENTERED_DR),0) - NVL(SUM(A.ENTERED_CR),0)) SALDO
       FROM      apps.GL_JE_LINES A, apps.GL_CODE_COMBINATIONS B

    quinta-feira, 1 de julho de 2010 13:48
  • Danilo,

    Vc esta fazendo esta query no Oracle?

    att,
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba
    quinta-feira, 1 de julho de 2010 13:57
    Moderador
  • É sim pode me ajudar
    quinta-feira, 1 de julho de 2010 14:00
  • Danilo,

    Nao tenho muita experiencia com o Oracle, em SQL seria assim:

    declare @teste as decimal(5,2)
    set @teste = -3.45 
    
    select right(replicate('0',12)+cast(cast(@teste*100 as int) as varchar),12)



    Embora este forum seja dedicado ao SQL Server, talvez algum usuario possa lhe ajudar, recomendo que poste em um forum de Oracle talve ajuda possa ser mais rápida e objetiva.

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba
    • Sugerido como Resposta Rafael S. Melo quinta-feira, 1 de julho de 2010 14:34
    • Marcado como Resposta Fernanda Simões segunda-feira, 5 de julho de 2010 14:26
    quinta-feira, 1 de julho de 2010 14:10
    Moderador
  • Mesmo assim muito Obrigado bom dia
    quinta-feira, 1 de julho de 2010 14:12
  • Danilo,

    Se fosse no sql server, eu faría assim:

    DECLARE
    	@VALOR decimal(17,2)
    
    SET @VALOR = -3.45
    -- -3.45
    -- 0.15
    
    SELECT REPLACE((REPLICATE('0', 13 - LEN(@VALOR)) + CAST(@VALOR AS VARCHAR(12))),'.','')

    Bom, não sei se o oracle tem algo parecido com o replicate, len, replace.... Mas de qualquer forma, dah pra ter uma idéia..

    att.

    Rafael

    quinta-feira, 1 de julho de 2010 14:13