Oracle SELECT DISTINCT

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada.