viernes, 11 de febrero de 2011

Maximo valor de un rango de selección con SQL

Saludos
El otro dia desarrollando un sistema se me planteo lo siguiente en la base de datos en este caso SQL Server.
Obtener el valor del maximo registro en una seleccion de los primeros 20 registro por ejemplo de una tabla.

el escript de prueba es el siguiente ambos dan  el mismo resultado.

Script 01 :  Tiene mayor coste en recursos

SELECT MAX(codi_usu) FROM seg_usuario
WHERE codi_usu IN  (
   SELECT TOP 20 codi_usu
   FROM seg_usuario
   ORDER BY codi_usu ASC
   )


Script 02 :  Tiene menor coste en recursos
--obtiene el maximo valor de los primeros 20 registros

DECLARE @max INT
SET  SELECT @max=MAX(CODI_USU) 
 FROM  (
  SELECT TOP 20 codi_usu 
   FROM seg_usuario 
  ORDER BY codi_usu
  )
 AS usuarios
PRINT @max

1 comentario:

  1. Intenta utilizar funciones, es mas rápido y lo mejor de todo reutilizable. :D

    ResponderEliminar