Translate

Função DECODE

Função DECODE

Função DECODE

 

Autor: Professor Paulo Kaupa

 

A função DECODE irá avaliar as condições definidas e então retornar um valor de acordo com o que for encontrado. Funciona como a estrutura CASE e IF-THEN_ELSE. Resumidamente o DECODE irá transformar (decodificar) um valor em outro.

Exemplo de uso:

Caso exista uma tabela de colaboradores com uma coluna para identificar o sexo do colaborador, esta coluna grava F e M, sendo F para o sexo Feminino e M para o sexo Masculino. Quando realiza-se um SELECT nesta tabela e deseja-se exibir as palavras Feminino e Masculino ao invés das letras iniciais. Mas como fazer isso se o que foi gravado foram apenas as letras inicias? A resposta é: Usando a função DECODE.

Sintaxe:

DECODE

(

expressão ,

valor procurado ,

resultado,  

valor padrão

               );

 

Onde:

Expressão - Um valor (coluna da tabela) para comparação.

valor procurado

Valor que será comparado com a expressão.

resultado

Valor a ser retornado se a expressão for igual ao valor procurado

valor padrão

Parametro opcional. Caso nenhum valor for encontrado (se nenhuma expressão for igual ao valor procurado), a função DECODE irá retorna o valor informado como valor padrão. Se não houver uma condição padrão será retornado Nulo (Null).

 

Exemplo 01:

Para uma melhor assimilação da função DECODE, a seguir o script para criação de uma tabela, inserção de valores e então o uso da função DECODE para tratar o retorno dos dados.

 

CREATE TABLE TB_COLABORADOR

(

  CODIGO_COLABORADOR NUMBER(38) PRIMARY KEY,

  NOME_COLABORADOR VARCHAR(50) NOT NULL,

  SEXO CHAR(1)

);

COMMIT;

 

Insira alguns registros em sua tabela, conforme a seguir:

INSERT INTO TB_COLABORADOR VALUES (1, 'PAULO', 'M');

INSERT INTO TB_COLABORADOR VALUES (2, 'JULIA', 'F');

COMMIT;

 

Para retornar os valores inseridos use o  script a seguir:

SELECT

  NOME_COLABORADOR,

  SEXO

FROM

               TB_COLABORADOR;

 

O valor para a coluna sexo deverão ser F e M.

Para que seja exibido Feminino onde for F e masculino onde for M, use o SELECT junto com o DESCODE:

 

               SELECT

 NOME_COLABORADOR,

 DECODE(SEXO, 'F', 'Feminino', 'M', 'Masculino')

FROM

 TB_COLABORADOR;

 

Neste exemplo a função DECODE, decodificou os códigos retornados pela coluna SEXO e exibiu as descrições associadas a cada código, quando encontrou F a função exibiu Feminino, quando encontrou M exibiu Masculino.

Nota: O número máximo de componentes que pode-se ter na função DECODE é 255, incluindo expressões, valores procurados e resultado.

 

Exercício proposto – Função DECODE

1 – Crie um script para a criação de uma tabela chamada TB_MUSICA, que contenha colunas para armazenar os seguintes valores:

               CÓDIGO DA MÚSICA NUMBER(38) PRIMARY KEY

               NOME DA GRAVADORA VARCHAR (50)

               INTERNACIONAL _NACIONAL CHAR(1) NOT NULL

CÓDIGO DA GRAVADORA

 

2 – Elabore um script para adicionar uma regra na coluna que irá identificar se a música é Internacional ou Nacional, esta regra deve permitir que apenas as letras I (Importado) ou N (Nacional) sejam inseridas.

3 – Insira alguns registros na TB_MUSICA.

4 – Elabore um Script para selecionar os registros da TB_MUSICA e use a função DECODE para retornar ‘Internacional’ onde a coluna INTERNACIONAL _NACIONAL estiver preenchida com ‘I’ e ‘Nacional’ a coluna INTERNACIONAL _NACIONAL estiver preenchida com ‘N’.

 

Sobre o Autor:

Mestre em Engenharia de Produção pela Universidade Nove de Julho. Bacharel em Ciência da Computação também pela Universidade Nove de Julho. Atualmente é Professor de ensino superior (Universidade Nove de Julho), Analista de Sistemas na Empresa Atento e Pesquisador na área de Inteligência Computacional aplicada em investimentos na Bolsa de Valores de São Paulo. Possui experiência em Análise e desenvolvimento de sistemas, aplicações de Inteligência Computacional no Mercado de Ações, Análise Técnica para seleção de ações para investimentos na Bolsa de Valores. Curriculo Lattes: http://lattes.cnpq.br/0074185478343196