English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderás cómo eliminar valores repetidos del conjunto de resultados.
Al obtener datos de una tabla de base de datos, el conjunto de resultados puede contener filas o valores repetidos. Si deseas eliminar estos valores repetidos, puedes especificar la palabra clave DISTINCT directamente después del nombre del comando SELECT, como se muestra a continuación:
La cláusula DISTINCT se utiliza para eliminar filas repetidas del conjunto de resultados:
SELECT DISTINCT column_list FROM table_name;
Aquí,column_listes una lista de nombres de columnas o campos de la tabla de base de datos que se obtienen los valores (por ejemploname,age,countryy otros).
Nota: El comportamiento de la cláusula DISTINCT es similar aUNIQUErestricción, a excepción de la forma en que trata a null. Dos valores NULL se consideran únicos, y al mismo tiempo no se considera que sean diferentes entre sí.
Vamos a ver algunos ejemplos que demuestren cómo funciona realmente.
Supongamos que en la base de datos tenemos unacustomersuna tabla que contiene los siguientes registros:
+---------+--------------------+-----------+-------------+ | cust_id | cust_name | city | postal_code | +---------+--------------------+-----------+-------------+ | 1 | Maria Anders | Berlín | 12209 | | 2 | Fran Wilson | Madrid | 28023 | | 3 | Dominique Perrier | París | 75016 | | 4 | Martin Blank | Turín | 10100 | | 5 | Thomas Hardy | Portland | 97219 | | 6 | Christianna Aguilera | Madrid | 28001 | +---------+--------------------+-----------+-------------+
Ahora ejecuta la siguiente sentencia, que devuelve lacityTodas las filas de la columna.
SELECT city FROM customers;
Después de ejecutar, obtendrás la siguiente salida:
+-----------+ | ciudad | +-----------+ | Berlín | | Madrid | | París | | Turín | | Portland | | Madrid | +-----------+
Si revisas con atención la salida, notarás que la ciudad "Madrid" aparece dos veces en nuestra colección de resultados, ¿es esto bueno? Bueno, vamos a resolver este problema.
Las siguientes declaraciones se utilizan para DISTINCT encustomersGenera una lista de todas las ciudades en la tabla.
SELECT DISTINCT city FROM customers;
Después de ejecutar el comando anterior, obtendrá el siguiente resultado:
+-----------+ | ciudad | +-----------+ | Berlín | | Madrid | | París | | Turín | | Portland | +-----------+
Como puede ver, esta vez no hay valores repetidos en el conjunto de resultados.
Nota:Si se utiliza la sentencia SELECT DISTINCT en una columna con múltiples valores NULL, SQL mantiene un valor NULL y elimina otros valores del conjunto de resultados, ya que DISTINCT considera todos los valores NULL como iguales.