Evitar duplicados usando DISTINCT en Oracle

En este artículo vamos aprender a evitar duplicados usando DISTINCT en Oracle. Esta cláusula se utiliza en la instrucción SELECT para eliminar filas duplicadas de un conjunto de resultados. DISTINCT se queda con un sola fila de cada grupo y es posible aplicarlo a una o más columnas indicadas en el SELECT.

Sintaxis de DISTINCT

La sintaxis básica es:

select distinct columna1
from nombreTabla;

select distinct columna1, columna2
from nombreTabla;Lenguaje del código: JavaScript (javascript)

En la primera sentencia evalúa los datos de la columna 1 para evitar duplicados mientras que en la segunda evalúa los duplicados en base a la combinación de valores de las dos columnas.

Ejemplos

Usaremos la siguiente tabla llamada empleados para realizar los ejemplos (al final de la página está disponible el script para crearla)

Mostrar los diferentes puestos

Para mostrar los valores diferentes de un campo y así evitar duplicados escribe después del SELECT la palabra DISTINCT seguida del nombre de uno o varios campos:

select distinct puesto
from empleados;Lenguaje del código: JavaScript (javascript)
Evitar duplicados usando DISTINCT en Oracle

Ejemplo completo

Copia y pega el siguiente código en tu consola de Oracle y realiza paso a paso leyendo los comentarios.

-- www.MiguelTroyano.com
-- Borramos la tabla si existe
drop table empleados;

-- Creamos la tabla
create table empleados
(
    id_empleado numeric(2,0),
    id_departamento numeric(2,0),
    nombre character varying(50),
    puesto character varying(50),
    fecha_alta date,
    sueldo integer
);

-- Insertamos valores
insert into empleados values (1,1,'Miguel Troyano','Analista',to_date('26/09/1986','DD/MM/YYYY'),60000);
insert into empleados values (2,1,'Ismael Troyano','Analista',to_date('01/01/2001','DD/MM/YYYY'),60000);
insert into empleados values (3,1,'Jose Troyano','Alta Dirección',to_date('01/01/2001','DD/MM/YYYY'),80000);
insert into empleados values (4,1,'Pilar Redondo','Alta Dirección',to_date('02/02/2002','DD/MM/YYYY'),80000);

-- Mostramos los diferentes puestos
select distinct puesto
from empleados;Lenguaje del código: JavaScript (javascript)

Escribir un comentario