English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como remover valores repetidos do conjunto de resultados.
Quando você obtém dados de uma tabela de banco de dados, o conjunto de resultados pode conter linhas ou valores repetidos. Se você deseja remover esses valores repetidos, você pode especificar a palavra-chave DISTINCT diretamente após o SELECT, conforme mostrado a seguir:
A cláusula DISTINCT é usada para remover linhas repetidas do conjunto de resultados:
SELECT DISTINCT column_list FROM table_name;
Aqui,column_listé uma lista de nomes de colunas ou campos da tabela de banco de dados a serem obtidos seus valores, separados por vírgula (por exemploname,age,countryetc.).
Atenção: O comportamento da cláusula DISTINCT é semelhante aUNIQUERestrição, além de como ele lida com NULL. Dois valores NULL são considerados únicos, mas não são considerados diferentes uns dos outros.
Vamos ver alguns exemplos que demonstram como ele realmente funciona.
Suponha que tenhamos umcustomersTabela, que contém os seguintes registros:
+---------+--------------------+-----------+-------------+ | cust_id | cust_name | city | postal_code | +---------+--------------------+-----------+-------------+ | 1 | Maria Anders | Berlim | 12209 | | 2 | Fran Wilson | Madrid | 28023 | | 3 | Dominique Perrier | Paris | 75016 | | 4 | Martin Blank | Turim | 10100 | | 5 | Thomas Hardy | Portland | 97219 | | 6 | Christina Aguilera | Madrid | 28001 | +---------+--------------------+-----------+-------------+
Agora execute a seguinte instrução, que retorna ocityTodas as linhas na coluna.
SELECT city FROM customers;
Após a execução, você obterá a seguinte saída:
+-----------+ | cidade | +-----------+ | Berlim | | Madrid | | Paris | | Turim | | Portland | | Madrid | +-----------+
Se você olhar atentamente para a saída, você notará que a cidade “Madrid” apareceu duas vezes em nosso conjunto de resultados, o que não é bom. Bem, vamos resolver esse problema.
As seguintes declarações são usadas para DISTINCT emcustomersA tabela gera uma lista de todas as cidades.
SELECT DISTINCT city FROM customers;
Após executar o comando acima, você obterá a seguinte saída:
+-----------+ | cidade | +-----------+ | Berlim | | Madrid | | Paris | | Turim | | Portland | +-----------+
Como você vê, o conjunto de resultados dessa vez não tem valores repetidos.
Atenção:Se o comando SELECT DISTINCT for usado em uma coluna com múltiplos valores NULL, o SQL mantém um valor NULL e remove os outros valores do conjunto de resultados, porque DISTINCT considera todos os valores NULL como iguais.