SQL no elimina las filas duplicadas en el resultado de la consulta, si nosotros no queremos que se repitan las filas, tenemos la cláusula DISTINCT.
Al incluir la cláusula DISTINCT en la SELECT, se eliminará del resultado las repeticiones de filas de resultado. Si por el contrario queremos que aparezcan todas las filas seleccionadas podemos incluir la cláusula ALL o nada, ya que ALL es el valor por defecto.
Listar los nº de empleado de los directores de las oficinas.
SELECT dir FROM oficinas;
dir |
---|
106 |
104 |
105 |
108 |
108 |
108 |
108 |
NULL |
NULL |
Si un mismo empleado dirige varias oficinas (por ejemplo el 108), su código aparece repetido en el resultado. Para evitarlo modificamos la consulta:
SELECT DISTINCT dir FROM oficinas;
dir |
---|
NULL |
104 |
105 |
106 |
108 |
Han desaparecido los valores duplicados.
Los que se eliminan son valores duplicados de filas del resultado, por ejemplo:
SELECT DISTINCT dir, region FROM oficinas;
dir | region |
---|---|
NULL | este |
NULL | norte |
104 | este |
105 | este |
106 | este |
108 | centro |
108 | oeste |
Ahora el 108 aparece dos veces porque las dos filas donde aparece no son iguales (porque tienen distinta región).
NOTA: La cláusula DISTINCT hace que la consulta tarde algo más en ejecutarse debido al proceso adicional de buscar y eliminar las repeticiones, por lo que se aconseja utilizarla únicamente cuando sea imprescindible.
Para practicar puedes realizar este Ejercicio Eliminar filas duplicadas.
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic S.L. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.