Oracle

Oracle DISTINCT: Ejemplos Prácticos | SELECT Único y Duplicados

En este tutorial aprenderás a utilizar la declaración SELECT DISTINCT de Oracle, una poderosa herramienta que te permitirá filtrar y obtener datos únicos de tus tablas. Esta cláusula es especialmente útil cuando necesitas evitar la duplicación de filas en tu conjunto de resultados, asegurándote de que solo se devuelvan filas únicas.

La cláusula DISTINCT se utiliza en una declaración SELECT para filtrar filas duplicadas en el conjunto de resultados, asegurándose de que solo se devuelvan filas únicas para la columna o columnas especificadas en la cláusula SELECT. Esta funcionalidad es especialmente útil en situaciones en las que tienes una gran cantidad de datos y solo te interesa obtener valores únicos de una columna específica.

¿Qué es SELECT DISTINCT?

La declaración SELECT DISTINCT es una cláusula utilizada en la sintaxis de SQL para especificar que solo se deberían seleccionar los valores únicos de una columna o conjunto de columnas en una consulta a la base de datos. Esto significa que cualquier duplicado en los valores de la columna especificada será eliminado y solo se devolverán los valores únicos.

La cláusula DISTINCT se coloca después de la palabra clave SELECT en una consulta y se aplica a todas las columnas que la siguen. Es importante tener en cuenta que SELECT DISTINCT se aplica a todas las columnas en una fila, no solo a la columna específica mencionada. Esto significa que, si tienes múltiples columnas en tu consulta, la cláusula DISTINCT eliminara duplicados que abarquen todas esas columnas.

Uso de SELECT DISTINCT

El uso de la declaración SELECT DISTINCT es muy sencillo. Simplemente debes colocarla después de la palabra clave SELECT en tu consulta, seguida de la columna o columnas de las cuales deseas obtener valores únicos. Por ejemplo:

SELECT DISTINCT columna FROM tabla;

Esta consulta devolverá solo los valores únicos de la columna especificada en la tabla seleccionada.

Es importante tener en cuenta que la cláusula DISTINCT afecta a todo el conjunto de resultados de la consulta, filtrando las filas duplicadas en función de la columna o columnas seleccionadas. Esto significa que si tienes múltiples columnas en tu consulta, todos los valores en esas columnas deberán coincidir para que se considere una fila duplicada y se filtre del conjunto de resultados.

Recomendado:  ¿Guía de intervalo en Oracle y conceptos básicos en Oracle SQL?

Adicionalmente, también puedes utilizar la cláusula DISTINCT con múltiples columnas. En este caso, colocas la cláusula DISTINCT después de SELECT y separas las columnas por comas. Por ejemplo:

SELECT DISTINCT columna1, columna2 FROM tabla;

Esta consulta devolverá valores únicos basados en combinaciones de las columnas especificadas en la tabla seleccionada.

Es importante mencionar que la cláusula DISTINCT solo considera las columnas especificadas en la cláusula SELECT para eliminar duplicados. Si tienes otras columnas en tu tabla que no están en la cláusula SELECT DISTINCT, estas no afectarán la eliminación de duplicados.

Ejemplos de SELECT DISTINCT

A continuación, se presentarán algunos ejemplos prácticos del uso de la cláusula SELECT DISTINCT en Oracle:

Ejemplo 1: Consideremos una tabla llamada «empleados» con las siguientes columnas: id_empleado, nombre, apellido y departamento. Si queremos obtener la lista única de departamentos presentes en la tabla, podemos utilizar la siguiente consulta:

SELECT DISTINCT departamento FROM empleados;

Esta consulta nos devolverá los diferentes departamentos presentes en la tabla «empleados», eliminando cualquier duplicado que pueda existir. Obteniendo así una lista única de los departamentos.

Ejemplo 2: Supongamos que tenemos una tabla llamada «clientes» con las columnas: id_cliente, nombre, dirección y ciudad. Si queremos obtener una lista única de ciudades donde viven los clientes, la consulta sería:

SELECT DISTINCT ciudad FROM clientes;

Esta consulta nos devolverá las diferentes ciudades presentes en la tabla «clientes», eliminando cualquier duplicado que pueda existir. De esta manera, obtendremos una lista única de las ciudades.

Ejemplo 3: Ahora, consideremos una tabla llamada «productos» con las columnas: id_producto, nombre, categoría y precio. Si queremos obtener una lista única de la combinación de nombre y categoría de los productos, podemos utilizar la siguiente consulta:

SELECT DISTINCT nombre, categoría FROM productos;

Esta consulta nos devolverá las diferentes combinaciones de nombre y categoría de los productos presentes en la tabla «productos», eliminando cualquier duplicado que pueda existir. De esta forma, obtendremos una lista única de las combinaciones.

Es importante mencionar que la cláusula DISTINCT también tiene en cuenta cómo trata los valores NULL. Si hay más de una fila con un valor NULL en la columna seleccionada, solo se mostrará un valor NULL en el conjunto de resultados. Sin embargo, si hay filas con valores NULL y no NULL, ambos se tratarán como diferentes y se mostrarán en el conjunto de resultados.

Recomendado:  Oracle HAVING: Ejemplos Prácticos | Ejemplo Oracle HAVING

La cláusula SELECT DISTINCT de Oracle te permite filtrar y obtener valores únicos de tus tablas. Te permite seleccionar los valores distintos de una o más columnas y eliminar filas duplicadas de tu conjunto de resultados. Utilizar esta cláusula es especialmente útil cuando necesitas obtener datos únicos y evitar la duplicación en tus consultas.

SELECT DISTINCT con múltiples columnas

La cláusula SELECT DISTINCT también se puede utilizar con múltiples columnas en Oracle. Esto es útil cuando deseas obtener combinaciones únicas de valores de diferentes columnas en tu conjunto de resultados. La sintaxis para usar SELECT DISTINCT con múltiples columnas es la siguiente:

SELECT DISTINCT columna1, columna2, ... FROM tabla;

En esta sintaxis, simplemente separas las columnas que deseas considerar como únicas con comas. Oracle aplicará la distinción a las combinaciones de valores de estas columnas y eliminará las filas duplicadas en función de estos valores combinados.

Por ejemplo, consideremos una tabla llamada «ventas» con las siguientes columnas: id_venta, fecha, producto y cantidad. Si deseamos obtener una lista única de combinaciones de producto y cantidad para todas las ventas realizadas, podemos utilizar la siguiente consulta:

SELECT DISTINCT producto, cantidad FROM ventas;

Esta consulta devolverá solo las combinaciones únicas de producto y cantidad presentes en la tabla «ventas», eliminando cualquier duplicado que pueda existir. De esta manera, obtenemos una lista única de las combinaciones de producto y cantidad registradas en las ventas.

Es importante tener en cuenta que cuando se usa SELECT DISTINCT con múltiples columnas, el resultado único se aplica a las combinaciones de valores de todas las columnas especificadas. Esto significa que si hay filas con los mismos valores en las columnas seleccionadas, pero uno o más valores en otras columnas son diferentes, esas filas se considerarán como combinaciones únicas y se mostrarán en el conjunto de resultados.

La cláusula SELECT DISTINCT de Oracle no solo se limita a una sola columna, sino que también puedes aplicarla a múltiples columnas para obtener combinaciones únicas de valores en tu conjunto de resultados. Esto te brinda flexibilidad para filtrar y obtener datos únicos basados en múltiples criterios de selección en tu consulta.

Tratamiento de valores NULL

Cuando utilizas la cláusula SELECT DISTINCT en Oracle, es importante tener en cuenta cómo se manejan los valores NULL.

En el caso de los valores NULL, se consideran únicos y se tratan de manera especial al utilizar la cláusula DISTINCT. Si tienes más de una fila con un valor NULL en la columna seleccionada, solo se mostrará un único valor NULL en el conjunto de resultados. Esto significa que los valores NULL se consideran iguales entre sí y se fusionan en uno solo en el resultado.

Recomendado:  Guía completa de SQL Anonymous Block en Oracle: PL/SQL y más

Por otro lado, si tienes filas con valores NULL y no nulos en la columna seleccionada, se mostrarán ambos en el conjunto de resultados. Los valores NULL y no nulos se consideran diferentes y se mostrarán como entidades distintas en el resultado.

Es importante considerar esta diferencia al utilizar SELECT DISTINCT en columnas que contienen valores NULL. Si deseas asegurarte de que se muestren todas las filas que contienen valores NULL, incluidas aquellas con duplicados, puedes utilizar la cláusula DISTINCT junto con una condición adicional para filtrar los valores NULL explícitamente. Por ejemplo:

SELECT DISTINCT columna FROM tabla WHERE columna IS NULL;

Esta consulta te dará los valores NULL distintos presentes en la columna seleccionada, incluidos aquellos con duplicados.

Al utilizar la cláusula SELECT DISTINCT en Oracle, los valores NULL se consideran únicos y se manejan de manera especial. Puedes utilizar una condición adicional para filtrar explícitamente los valores NULL si deseas mostrar todas las filas que los contienen, incluidas aquellas con duplicados.

Conclusiones

La cláusula SELECT DISTINCT de Oracle es una herramienta poderosa que te permite filtrar y obtener datos únicos de tus tablas. Con esta cláusula, puedes eliminar filas duplicadas en tu conjunto de resultados y garantizar que solo se devuelvan filas únicas para la columna o columnas especificadas.

La cláusula DISTINCT se utiliza después de la palabra clave SELECT en una consulta y se aplica a todas las columnas que siguen. También puedes utilizarla con múltiples columnas, lo que te permite obtener combinaciones únicas de valores de diferentes columnas.

Es importante tener en cuenta cómo se trata los valores NULL al utilizar la cláusula DISTINCT. Los valores NULL se consideran únicos entre sí y se fusionan en uno solo en el conjunto de resultados. Sin embargo, si hay filas con valores NULL y no nulos en la columna seleccionada, ambos se consideran diferentes y se mostrarán en el resultado.

La cláusula SELECT DISTINCT de Oracle te brinda la capacidad de obtener valores únicos de tus tablas y evitar duplicados en tus consultas. Asegúrate de comprender cómo se manejan los valores NULL al utilizar esta cláusula para obtener los resultados deseados en tus consultas.

Author

osceda@hotmail.com

Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *