Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
SQL: cláusula DISTINCT
Este tutorial de SQL explica cómo usar SQL Cláusula DISTINCT Con sintaxis y ejemplos.
describir
La cláusula SQL DISTINCT se usa para eliminar duplicados del conjunto de resultados de una instrucción SELECT.
sintaxis
La sintaxis de la cláusula DISTINCT en SQL es:
SELECT DISTINCT expressions FROM tables [WHERE conditions];
parámetro o parámetro
Expresión La columna o cálculo que desea recuperar. tabla La tabla de la que desea recuperar registros. Debe aparecer al menos una tabla en la cláusula FROM. La condición WHERE es opcional. Para seleccionar las condiciones que debe cumplir un registro.
notas
- Cuando solo se proporciona una expresión en la cláusula DISTINCT, la consulta devuelve valores únicos para esa expresión.
- Cuando se proporcionan varias expresiones en la cláusula DISTINCT, la consulta recupera combinaciones únicas de las expresiones enumeradas.
- En SQL, la cláusula DISTINCT no ignora los valores NULL. Por lo tanto, cuando usa la cláusula DISTINCT en su declaración SQL, su conjunto de resultados contendrá NULL como valores distintos.
Ejemplo de DDL/DML
Si desea seguir este tutorial, obtenga DDL para crear las tablas y DML para completar los datos. ¡Entonces pruebe los ejemplos en su propia base de datos!
Ejemplo: buscar valores únicos en la columna
Veamos cómo usar la cláusula DISTINCT para encontrar valores únicos en una columna de una tabla.
En este ejemplo, tenemos una tabla llamada proveedores con los siguientes datos:
Identificación del proveedor | Nombre del proveedor | Ciudad | Expresar |
---|---|---|---|
100 | microsoft | Redmond | Washington |
200 | paisaje de la cima de la montaña | California | |
300 | Oráculo | ciudad de secoya | California |
400 | Kimberly Clark | Owen | Texas |
500 | Alimentos Tyson | Springdale | Arkansas |
600 | sc johnson | Racine | el estado de wisconsin |
700 | Alimentos Dole | pueblo del lago oeste | California |
800 | flores comida | thomasville | Georgia |
900 | Artes electrónicas | ciudad de secoya | California |
Busquemos todos los estados únicos en la tabla de proveedores. Ingrese la siguiente instrucción SQL:
SELECT DISTINCT state FROM suppliers ORDER BY state;
Se seleccionarán 6 registros. Estos son los resultados que deberías ver:
Expresar |
---|
Arkansas |
California |
Georgia |
Texas |
Washington |
el estado de wisconsin |
Este ejemplo devuelve todos los valores de estado únicos en la tabla de proveedores y elimina todos los duplicados del conjunto de resultados. Como puede ver, el estado de California aparece solo una vez en el conjunto de resultados, no cuatro veces.
Ejemplo: buscar valores únicos en varias columnas
A continuación, veamos cómo usar la cláusula SQL DISTINCT para eliminar duplicados de varios campos en una instrucción SELECT.
Usando la misma tabla de proveedores que en el ejemplo anterior, ingrese la siguiente instrucción SQL:
SELECT DISTINCT city, state FROM suppliers ORDER BY city, state;
Se seleccionarán 8 registros. Estos son los resultados que deberías ver:
Ciudad | Expresar |
---|---|
Owen | Texas |
paisaje de la cima de la montaña | California |
Racine | el estado de wisconsin |
Redmond | Washington |
ciudad de secoya | California |
Springdale | Arkansas |
thomasville | Georgia |
pueblo del lago oeste | California |
Este ejemplo devolverá cada combinación única de ciudad y estado. En este caso, DISTINCT se aplica a cada campo que aparece después de la palabra clave DISTINCT. como puedes ver, Redwood City, California
Aparece solo una vez en el conjunto de resultados, no dos veces.
Ejemplo: cómo la cláusula DISTINCT maneja los valores NULL
Finalmente, ¿la cláusula DISTINCT considera que NULL es el único valor en SQL? La respuesta es sí. Exploremos esto más a fondo.
En este ejemplo, tenemos una tabla llamada productos con los siguientes datos:
ID del Producto | nombre del producto | categoria ID |
---|---|---|
1 | pera | 50 |
2 | plátano | 50 |
3 | mandarina | 50 |
4 | manzana | 50 |
5 | pan de molde | 75 |
6 | jamón | 25 |
7 | kleenex | nulo |
Ahora seleccionemos valores únicos del campo category_id que contiene valores NULL. Ingrese la siguiente instrucción SQL:
SELECT DISTINCT category_id FROM products ORDER BY category_id;
Se seleccionarán 4 registros. Estos son los resultados que deberías ver:
categoria ID |
---|
nulo |
25 |
50 |
75 |
En este ejemplo, la consulta devolverá valores únicos en la columna category_id. Como puede ver en la primera fila del conjunto de resultados, NULL es el único valor devuelto por la cláusula DISTINCT.