InicioTecnolog铆aConsultas SQL con Predicado ALL, TOP, DISTINCT, DISTINCTROW

Consultas SQL con Predicado ALL, TOP, DISTINCT, DISTINCTROW

El predicado se incluye entre la clausula y el primer nombre del campo a recuperar, los posibles predicados son:

  • ALL: Devuelve todos los campos de la tabla
  • TOP: Devuelve un determinado n煤mero de registros de la tabla
  • DISTINCT: Omite los registros cuyos campos seleccionados coincidan totalmente
  • DISTINCTROW: Omite los registros duplicados bas谩ndose en la totalidad del registro y no s贸lo en los campos seleccionados.

ALL (se puede usar * en su reemplazo):

Anuncios

Si no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos selecciona todos los registros que cumplen las condiciones de la instrucci贸n SQL. No se conveniente abusar de este predicado ya que obligamos al motor de la base de datos a analizar la estructura de la tabla para averiguar los campos que contiene, es mucho m谩s r谩pido indicar el listado de campos deseados.

Anuncios

SELECT ALL FROM Empleados;

SELECT * FROM Empleados;

Anuncios

TOP

Devuelve un cierto n煤mero de registros que entran entre al principio o al final de un rango especificado por una cl谩usula ORDER BY. Supongamos que queremos recuperar los nombres de los 25 primeros estudiantes del curso 1994:

Anuncios

– SELECT TOP 25 Nombre, Apellido FROM Estudiantes

– ORDER BY Nota DESC;

Anuncios

Si no se incluye la cl谩usula ORDER BY, la consulta devolver谩 un conjunto arbitrario de 25 registros de la tabla Estudiantes .El predicado TOP no elige entre valores iguales. En el ejemplo anterior, si la nota media n煤mero 25 y la 26 son iguales, la consulta devolver谩 26 registros. Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al final de un rango especificado por la cl谩usula ORDER BY. Supongamos que en lugar de los 25 primeros estudiantes deseamos el 10 por ciento del curso:

– SELECT TOP 10 PERCENT Nombre, Apellido FROM Estudiantes ORDER BY Nota DESC;

El valor que va a continuaci贸n de TOP debe ser un Integer sin signo.TOP no afecta a la posible actualizaci贸n de la consulta.

DISTINCT

Omite los registros que contienen datos duplicados en los campos seleccionados. Para que los valores de cada campo listado en la instrucci贸n SELECT se incluyan en la consulta deben ser 煤nicos.

Por ejemplo, varios empleados listados en la tabla Empleados pueden tener el mismo apellido. Si dos registros contienen L贸pez en el campo Apellido, la siguiente instrucci贸n SQL devuelve un 煤nico registro:

– SELECT DISTINCT Apellido FROM Empleados;

Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la cl谩usula SELECT posean un contenido diferente. El resultado de una consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otros usuarios.

DISTINCTROW

Devuelve los registros diferentes de una tabla; a diferencia del predicado anterior que s贸lo se fijaba en el contenido de los campos seleccionados, 茅ste lo hace en el contenido del registro completo independientemente de los campo indicados en la cl谩usula SELECT.

– SELECT DISTINCTROW Apellido FROM Empleados;

Si la tabla empleados contiene dos registros: Antonio L贸pez y Marta L贸pez el ejemplo del predicado DISTINCT devuleve un 煤nico registro con el valor L贸pez en el campo Apellido ya que busca no duplicados en dicho campo. Este 煤ltimo ejemplo聽 devuelve dos registros con el valor L贸pez en el apellido ya que se buscan no duplicados en el registro completo.

Matias Riquelme
Matias Riquelme
Ingeniero Civil Industrial con experiencia en empresas multinacionales. Me gusta la redacci贸n de art铆culos de liderazgo, administraci贸n de empresas y estrategia.
Web y Empresas (Ene 27, 2023) Consultas SQL con Predicado ALL, TOP, DISTINCT, DISTINCTROW. Retrieved from https://www.webyempresas.com/consultas-sql-con-predicado-all-top-distinct-distinctrow/.
"Consultas SQL con Predicado ALL, TOP, DISTINCT, DISTINCTROW." Web y Empresas - Accessed Ene 27, 2023. https://www.webyempresas.com/consultas-sql-con-predicado-all-top-distinct-distinctrow/

1 COMENTARIO

  1. En Access tengo 3 registros duplicados y al hacer un SELECT con DISTINCTROW me sigue mostrando los 3 registros duplicados. Pero con DISTINCT s铆 me funciona, 驴por qu茅? espero me puedas ayudar, muchas gracias.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aqu铆