Este tutorial SQL foca na palavra-chave SQL DISTINCT no Oracle, e fornece explicações, exemplos e exercícios. Para os exercícios desta lição, use este link.
Este tutorial é parte de vários posts que explicam como escrever consultas básicas no Oracle. Para ler posts adicionais sobre este assunto, por favor use os seguintes links:
- Escrevendo instruções SQL SELECT básicas
- Operadores Aritméticos doSQL
- Alias da coluna doSQL
- Concatenação de String doSQL
- Palavra-chave DISTINCT doSQL
Palavra-chave DISTINCT do Oracle
A exibição padrão das consultas Oracle é todas as linhas, incluindo as linhas duplicadas. A palavra-chave DISTINCT do Oracle na cláusula SELECT é usada para eliminar linhas duplicadas e exibir uma lista única de valores.
Por exemplo: vamos assumir que temos uma tabela de Clientes, que contém uma lista de clientes de diferentes cidades: 40 clientes de Londres, 30 de Liverpool e 30 de Manchester. Foi-lhe pedido para mostrar a lista de cidades onde estes clientes residem:
SELECT cityFROM customers
Esta declaração Oracle não é muito útil, uma vez que recupera 100 linhas (Londres retorna 40 vezes, Liverpool retorna 30 vezes, e Manchester retorna 30 vezes), enquanto que a nossa intenção era mostrar apenas 3 linhas.
Para resolver este problema e recuperar apenas valores únicos, use a palavra-chave DISTINCT do Oracle:
SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers
O resultado:
CITY------LondonLiverpoolManchester
Nota : A palavra-chave DISTINCT do Oracle deve ser incluída imediatamente após a palavra-chave SELECT do Oracle.
Oracle DISTINCT Statement on Multiple Columns
Após a palavra-chave Oracle DISTINCT, é possível especificar mais de uma coluna. O qualificador Oracle DISTINCT afeta todas as colunas selecionadas, ao fazer isso, o resultado irá exibir a combinação única de valores das diferentes colunas. Por exemplo, uma lista de clientes de diferentes cidades e países:
Nome do cliente | Cidade | País |
John Smith | Liverpool | Inglaterra |
Sophia Williams | Londres | Inglaterra |
Emma Miller | Liverpool | England |
Olivia Wilson | Paris | França |
Logan Davis | Paris | França |
Vê-se que há dois clientes de Liverpool-Inglaterra, dois clientes de Paris-França, e outro cliente de Londres-Inglaterra.
Executar a declaração do Oracle DISTINCT na coluna País resulta na recuperação de 2 linhas (Inglaterra,Paris).
SELECT DISTINCT countryFROM customers
Executar a declaração do Oracle DISTINCT na coluna Cidade resulta na recuperação de 3 linhas (Liverpool, Londres, paris).
SELECT DISTINCT city FROM customers
Se você executar a declaração DISTINCT do Oracle nas colunas Cidade e País:
SELECT DISTINCT city , countryFROM customers
Três resultados são recuperados – Liverpool Inglaterra, Londres Inglaterra, Paris França.