Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/04/2011, 08:28
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Consulta sobre select y numero de filas

Hola guillox:

Creo que estás tratando de implementar el operador LIMIT de MySQL cierto??? lamentablemente SQL Server no maneja tal operador, aunque con algunas adecuaciones podrías hacer algo parecido. Dale un vistazo a la función ROW_NUMBER(), esta te sirve entre muchas otras cosas para enumerar cada uno de tus registros, de tal manera que mediante una subconsulta puedes obtener lo que necesitas. Para el ejemplo voy a considerar que tus registros los estás ordenando por el campo EDAD, para enumerar cada renglón.

Código SQL:
Ver original
  1. DECLARE  @Tabla TABLE (nombre VARCHAR(20), edad INT)
  2. INSERT INTO @Tabla VALUES ('Pablo', 10)
  3. INSERT INTO @Tabla VALUES ('German', 14)
  4. INSERT INTO @Tabla VALUES ('Nicolas', 15)
  5. INSERT INTO @Tabla VALUES ('Ariel', 15)
  6. INSERT INTO @Tabla VALUES ('Alexis', 17)
  7. INSERT INTO @Tabla VALUES ('Joel', 17)
  8. INSERT INTO @Tabla VALUES ('Sebastian', 18)
  9. INSERT INTO @Tabla VALUES ('Matias', 19)
  10. INSERT INTO @Tabla VALUES ('Cristian', 19)
  11. INSERT INTO @Tabla VALUES ('Patricio', 19)
  12.  
  13. SELECT * FROM (
  14. SELECT ROW_NUMBER() OVER(ORDER BY T1.edad) rownumber, T1.* FROM @Tabla T1) T2
  15. WHERE T2.rownumber >= 4 AND T2.rownumber <= 7

La idea es básicamente la misma que la que comenta el compañero Libra al crear una tabla Temporal con IDENTITY, pero en un solo select, sin crear tablas adicionales.

Checa esta líga, ahí encontrarás información sobre el operador row_number que te podrá servir.
http://msdn.microsoft.com/es-es/library/ms186734.aspx

Saludos
Leo.