DB2 - Banco de dados - Instruções e Funções Básicas - DISTINCT


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DISTINCT

Utilize a palavra-chave DISTINCT antes dos nomes da coluna em uma instrução SQL para evitar duplicar que as linhas sejam excluídas.

Exemplos

O exemplo a seguir lista somente as divisões exclusivas que existem na tabela Q.ORG:

Esta consulta:

   SELECT DISTINCT DIVISION
   FROM   Q.ORG

Produz este relatório:

   DIVISION
   ---------
   CORPORATE
   EASTERN
   MIDWEST
   WESTERN

Compare esse resultado com o seguinte exemplo:

Esta consulta:

   SELECT DIVISION
   FROM   Q.ORG

Produz este relatório:

   DIVISION  
   ----------
   CORPORATE 
   EASTERN   
   EASTERN   
   EASTERN   
   MIDWEST   
   MIDWEST   
   WESTERN   
   WESTERN   

DISTINCT também pode selecionar diferentes combinações de dados.

Exemplo:

   SELECT DISTINCT DEPT
   ,      JOB
   FROM   Q.STAFF
   ORDER  BY DEPT

O relatório que é produzido a partir deste exemplo mostra os cargos representados em cada departamento.

Lembre-se destas propriedades ao utilizar DISTINCT:

  • DISTINCT vem depois de SELECT.
  • DISTINCT vem antes do primeiro nome de coluna e não é separado do nome da coluna por uma vírgula.
  • DISTINCT aplica-se a todas as colunas que estão selecionadas.

DISTINCT pode ser usado com COUNT.

Utilize DISTINCT com outras funções de coluna quando quiser utilizar somente os valores diferentes das colunas em um grupo.
Por exemplo, AVG(DISTINCT PREÇO) ignora preços duplicados na coluna e tira a média de uma lista onde cada preço aparece uma vez.
AVG(PRICE) tira a média de todos os preços da coluna sem considerar o fato de que alguns preços são duplicatas.

Para listar os diferentes valores que aparecem para YEARS, utilize uma consulta como a seguinte consulta:

   SELECT DISTINCT YEARS
   FROM   Q.STAFF
   ORDER  BY YEARS

Para listar os números do departamento para os departamentos nos quais pelo menos um funcionário tem 10 ou mais anos de serviço, utilize uma consulta como a seguinte consulta:

   SELECT DISTINCT DEPT
   FROM   Q.STAFF
   WHERE  YEARS >= 10


© Copyright IBM Corp.