none
Qual funçã Usar para alterar o resultado de um campo para um texto especifico RRS feed

  • Pergunta

  • Boa tarde!

    Alguém saberia em infomar qcomo poderia alterar o resultado de um campo na consulta por um texto especifico?

    Qual função deveria usar? Como utilizar a dunção decode?

    Exemplo:

    Quando o resultado da consulta (case When XXXXX <> YYYYY  as Validar_Registro) trazer valores em branco, alterar o resultado de vazio para o texto:  "Não encontrado registros com erro

    terça-feira, 12 de fevereiro de 2019 16:26

Respostas

  • Olá, boa tarde..

    O CASE é melhor para ser usado.. o DECODE deve ser usado para trazer resultados baseados em nunmerações, por exemplo.. 

    SELECT
      DECODE
      (
        varOcupacao,
        1, 'Presidente',
        2, 'Diretor',
        3, 'Supervisor',
           'Funcionário'
      )
    FROM .....

    O CASE é mais flexível e tem uma melhor performance ..

    SELECT

    CASE WHEN XXXX > 0 THEN ...

    CASE WHEN XXXX = 0 THEN

    "Não encontrado registros com erro"

    ELSE

    .....

    END

    Abs, qq coisa, estamos aqui

    • Marcado como Resposta FlavioPrates terça-feira, 12 de fevereiro de 2019 16:56
    terça-feira, 12 de fevereiro de 2019 16:43

Todas as Respostas

  • Olá, boa tarde..

    O CASE é melhor para ser usado.. o DECODE deve ser usado para trazer resultados baseados em nunmerações, por exemplo.. 

    SELECT
      DECODE
      (
        varOcupacao,
        1, 'Presidente',
        2, 'Diretor',
        3, 'Supervisor',
           'Funcionário'
      )
    FROM .....

    O CASE é mais flexível e tem uma melhor performance ..

    SELECT

    CASE WHEN XXXX > 0 THEN ...

    CASE WHEN XXXX = 0 THEN

    "Não encontrado registros com erro"

    ELSE

    .....

    END

    Abs, qq coisa, estamos aqui

    • Marcado como Resposta FlavioPrates terça-feira, 12 de fevereiro de 2019 16:56
    terça-feira, 12 de fevereiro de 2019 16:43
  • Flavio, não há função DECODE no SQL Server. Qual é o gerenciador de banco de dados que está a utilizar?

    O equivalente de DECODE em T-SQL é CHOOSE.


    José Diz     Belo Horizonte, MG - Brasil     [Linked In]   [e-mail]   [Porto SQL]


    Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.

    Sim, sim, realmente, o DECODE é do Oracle, esqueci de mencionar isto , obgd.

    Abs.

    terça-feira, 12 de fevereiro de 2019 17:37
  • FlavioPrates,

    Talvez o operador IIF adicionado ao SQL Server a partir da versão 2012 possa ser um alternativa, veja os exemplos:

    DECLARE @P INT = NULL, @S INT = NULL;  
    SELECT IIF ( 45 > 30, @p, @s ) AS Result;  


    SELECT IIF ( 45 > 30, NULL, NULL ) AS Result;  


    DECLARE @a int = 45, @b int = 40;  
    SELECT IIF ( @a > @b, 'TRUE', 'FALSE' ) AS Result;  

    Agora o case é um dos operadores mais tradicionais e conhecidos, existente no SQL Server desde suas primeiras versões, mas que dependendo da análise condicional poderá apresentar impactos custosos para o processamento da query.

    A função Choose também é uma boa opção, como já destacado pelo José Diz.

    Exemplos:

    O exemplo a seguir retorna o terceiro item da lista de valores fornecida.
    
    SELECT CHOOSE ( 3, 'Manager', 'Director', 'Developer', 'Tester' ) AS Result;  
    

    O exemplo a seguir retorna uma cadeia de caracteres simples com base no valor da coluna ProductCategoryID
    
    SELECT ProductCategoryID, CHOOSE (ProductCategoryID, 'A','B','C','D','E') AS Expression1  
    FROM Production.ProductCategory;  
    

    O exemplo a seguir retorna a estação em que um funcionário foi contratado. A função MONTH é usada para retornar o valor do mês da coluna HireDate.
    
    SELECT JobTitle, HireDate, CHOOSE(MONTH(HireDate),'Winter','Winter', 'Spring','Spring','Spring','Summer','Summer',   
                                                      'Summer','Autumn','Autumn','Autumn','Winter') AS Quarter_Hired  
    FROM HumanResources.Employee  
    WHERE  YEAR(HireDate) > 2005  
    ORDER BY YEAR(HireDate);  

    CHOOSE age como um índice em uma matriz, onde a matriz é composta pelos argumentos que acompanham o argumento de índice. O argumento de índice determina qual dos valores a seguir será retornado.


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


    terça-feira, 12 de fevereiro de 2019 17:51
    Moderador