none
case RRS feed

  • Pergunta

  • Prezados, na SQl abaixo eu estou precisando que quanto o resultado do SQL seja NULL, ele traga ' ** ' pois o produto nao tem equipamento, tentando fazer isso no Case, porem nao estou conseguindo.

    vejam a SQL

    SELECT

    T.NSEQITMMOV AS 'Seq. Item',P.NOMEFANTASIA AS 'Nome do Produto'

    ,

    T

    .QUANTIDADE AS 'Quantidade' ,T.PRECOUNITARIO AS 'R$ Unitario',
     

    T

    .VALORTOTALITEM AS 'Total' ,
     

     

    CASE

     

    WHEN T.IDOBJOFICINA = 'NULL' THEN T.IDOBJOFICINA

     

    ELSE '**'

     

    END 'Equip'

     

    FROM TITMMOV AS T

    INNER

    JOIN TPRD AS P ON P.IDPRD = T.IDPRD

    WHERE

    T.IDMOV = '144115'

    talvez eu esteja fazendo o case errado, somente pode trazer ** quando o campo for NULL.

    obrigado a todos pela ajuda.

    terça-feira, 17 de janeiro de 2012 16:42

Respostas

  • Boa tarde,

     

    Acho que neste caso o Case pode ser substituido por Coalesce mais ou menos como segue:

     

    Coalesce(T.IDOBJOFICINA, '**') as 'Equip'
    

     

    Espero que seja útil.

     

     


    Assinatura: Imobiliarias em Suzano
    • Sugerido como Resposta Eduardo Gomes Pereira quarta-feira, 18 de janeiro de 2012 12:11
    • Marcado como Resposta Ronnie Von quarta-feira, 18 de janeiro de 2012 18:35
    terça-feira, 17 de janeiro de 2012 17:11
  • Também pode tratar com ISNULL:

    SELECT
        T.NSEQITMMOV AS 'Seq. Item',P.NOMEFANTASIA AS 'Nome do Produto',
        T.QUANTIDADE AS 'Quantidade' ,T.PRECOUNITARIO AS 'R$ Unitario',
        T.VALORTOTALITEM AS 'Total' ,
        isnull(T.IDOBJOFICINA, '**') as 'Equip'
    FROM
        TITMMOV AS T
        INNER JOIN TPRD AS P
        ON P.IDPRD = T.IDPRD
    WHERE
        T.IDMOV = '144115'


    Abraços, Weslley Moura MCP - MCTS - ORA SqlExpert
    • Sugerido como Resposta Eduardo Gomes Pereira quarta-feira, 18 de janeiro de 2012 12:11
    • Marcado como Resposta Ronnie Von quarta-feira, 18 de janeiro de 2012 18:35
    quarta-feira, 18 de janeiro de 2012 11:56

Todas as Respostas

  • Boa tarde,

     

    Acho que neste caso o Case pode ser substituido por Coalesce mais ou menos como segue:

     

    Coalesce(T.IDOBJOFICINA, '**') as 'Equip'
    

     

    Espero que seja útil.

     

     


    Assinatura: Imobiliarias em Suzano
    • Sugerido como Resposta Eduardo Gomes Pereira quarta-feira, 18 de janeiro de 2012 12:11
    • Marcado como Resposta Ronnie Von quarta-feira, 18 de janeiro de 2012 18:35
    terça-feira, 17 de janeiro de 2012 17:11
  • Também pode tratar com ISNULL:

    SELECT
        T.NSEQITMMOV AS 'Seq. Item',P.NOMEFANTASIA AS 'Nome do Produto',
        T.QUANTIDADE AS 'Quantidade' ,T.PRECOUNITARIO AS 'R$ Unitario',
        T.VALORTOTALITEM AS 'Total' ,
        isnull(T.IDOBJOFICINA, '**') as 'Equip'
    FROM
        TITMMOV AS T
        INNER JOIN TPRD AS P
        ON P.IDPRD = T.IDPRD
    WHERE
        T.IDMOV = '144115'


    Abraços, Weslley Moura MCP - MCTS - ORA SqlExpert
    • Sugerido como Resposta Eduardo Gomes Pereira quarta-feira, 18 de janeiro de 2012 12:11
    • Marcado como Resposta Ronnie Von quarta-feira, 18 de janeiro de 2012 18:35
    quarta-feira, 18 de janeiro de 2012 11:56
  • valeu pessoal obrigado.
    quarta-feira, 18 de janeiro de 2012 18:36