La segunda forma de la sentencia SELECT básica tiene la misma clausula FROM pero la clausula SELECT es diferente.
SELECT { [DISTINCT] column | expresion [alias],... }
FROM nombretabla;
La clausula SELECT puede ser descrita en dos formas:
SELECT column1 [alias opcional], column2 [alias opcional], ...
ó
SELECT DISTINCT column1 [alias opcional], column2 [alias opcional], ...
Un alias es un nombre alternativo para nombrar una columna o una expresión. Los alias son utilizados para colocar nombres más amigables a la columnas, también sirve para acortar nombres de columnas largos. La primera forma:
SELECT column1 [alias opcional], column2 [alias opcional], ...
En esta podemos escribir las columnas que deseamos proyectar, ejemplo:
En el ejemplo anterior estamos seleccionando la tabla Locations y proyectamos solo las columnas: LOCATION_ID y STREET_ADDRESS. Y ya no proyectamos todas las columnas, esta forma nos sirve para proyectar solo las columnas que necesitamos.
En la segunda forma:
SELECT DISTINCT column1 [alias opcional], column2 [alias opcional], ...
Utilizando la palabra DISTINCT que se muestra en la segunda forma, nos permite eliminar registros duplicados de un conjunto de resultado. Una característica muy importante de la palabra DISTINCT es que permite eliminar duplicados  de columnas combinadas.
En las siguiente consulta estamos seleccionado JOB_ID de la tabla JOB_HISTORY como vemos esta consulta nos regresa 10 registros de resultado, pero si observamos veremos que hay registros duplicados los cuales son: AC_ACCOUNT y ST_CLERK. Ahora en una nueva consulta aplicaremos la palabra DISTINCT y esta eliminará los registros duplicados y como resultado obtendremos registros únicos y un total de 8.   
Ahora aplicamos la palabra DISTINCT a dos columnas, este eliminará los registros que tengan el mismo valor en las dos columnas, observemos la siguiente imagen en la cual se están seleccionando las columnas JOB_ID y DEPARMENT_ID de la Tabla JOB_HISTORY de la cual obtenemos 10 registros de resultado y vemos que hay dos registros duplicados (ST_CLERK 50) este registro esta duplicado, si aplicamos DISTINCT este buscara los registros duplicados que tengan los mismos valores en las columnas.
Comentarios
Publicar un comentario