Resumen: en este tutorial, aprenderá a utilizar la sentencia Oracle SELECT DISTINCT
para consultar datos distintos de las tablas.
Introducción a la sentencia Oracle SELECT DISTINCT
La cláusula DISTINCT
se utiliza en una sentencia SELECT
para filtrar las filas duplicadas en el conjunto de resultados. Asegura que las filas devueltas son únicas para la columna o columnas especificadas en la cláusula SELECT
.
Lo siguiente ilustra la sintaxis de la sentencia SELECT DISTINCT
:
En esta sentencia, se comparan los valores en el column_1
del table
para determinar los duplicados.
Para recuperar datos únicos basados en múltiples columnas, basta con especificar la lista de columnas en la cláusula SELECT
de la siguiente manera:
En esta sintaxis, la combinación de valores en el column_1
, column_2
y column_3
se utilizan para determinar la unicidad de los datos.
La cláusula DISTINCT
sólo se puede utilizar en la sentencia SELECT
.
Nótese que DISTINCT
es sinónimo de UNIQUE
que no es estándar de SQL. Es una buena práctica utilizar siempre DISTINCT
en lugar de UNIQUE
.
Ejemplos de SELECT DISTINCT de Oracle
Veamos algunos ejemplos de uso de SELECT DISTINCT
para ver cómo funciona.
A) Ejemplo de Oracle SELECT DISTINCT una columna
Vea la tabla contacts
de la base de datos de ejemplo:
El siguiente ejemplo recupera todos los nombres de pila de los contactos:
La consulta devolvió 319 filas, lo que indica que la tabla contacts
tiene 319 filas.
Para obtener los nombres de pila únicos de los contactos, se añade la palabra clave DISTINCT
a la sentencia SELECT
anterior de la siguiente manera:
Ahora, el conjunto de resultados tiene 302 filas, lo que significa que se han eliminado 17 filas duplicadas.
B) Ejemplo de Oracle SELECT DISTINCT múltiples columnas
Vea la siguiente tabla order_items
:
La siguiente sentencia selecciona id de producto y cantidad distintos de la tabla order_items
:
Lo siguiente ilustra el resultado:
En este ejemplo, los dos valores de las columnas product_id
y quantity
se utilizan para evaluar la unicidad de las filas en el conjunto de resultados.
C) Oracle SELECT DISTINCT y NULL
El DISTINCT
trata los valores NULL como duplicados entre sí. Si se utiliza la sentencia SELECT DISTINCT
para consultar datos de una columna que tiene muchos valores NULL, el conjunto de resultados incluirá sólo un valor NULL.
Véase la tabla locations
de la base de datos de ejemplo.
La siguiente sentencia recupera datos de la columna state, que tiene muchos valores NULL:
Resultado:
Como puede ver, sólo se devuelve un valor NULL.
Tenga en cuenta que si desea aplicar la sentencia DISTINCT
a algunas columnas, mientras omite otras, debe utilizar la cláusula GROUP BY
en su lugar.
En este tutorial, ha aprendido a utilizar la sentencia SELECT DISTINCT
para obtener datos únicos basados en una o más columnas.
- ¿Ha sido útil este tutorial?
- SíNo