English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Cláusula DISTINCT de SQL

En este tutorial, aprenderás cómo eliminar valores repetidos del conjunto de resultados.

Recuperar valores diferentes

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:

Sintaxis

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.

eliminar datos repetidos

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.