Usuário com melhor resposta
Qual funçã Usar para alterar o resultado de um campo para um texto especifico

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]
- Editado Junior Galvão - MVPMVP, Moderator terça-feira, 12 de fevereiro de 2019 17:54
terça-feira, 12 de fevereiro de 2019 17:51Moderador