Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Consulta sobre select y numero de filas

Estas en el tema de Consulta sobre select y numero de filas en el foro de SQL Server en Foros del Web. Tengo una consulta que luego de buscar en la web no encuentro un dato que refiera al asunto. Supongamos que tengo una consulta que me ...
  #1 (permalink)  
Antiguo 12/04/2011, 20:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Consulta sobre select y numero de filas

Tengo una consulta que luego de buscar en la web no encuentro un dato que refiera al asunto.

Supongamos que tengo una consulta que me devuleve las siguientes 10 filas

nombre edad

Pablo 10
German 14
Nicolas 15
Ariel 15
Alexis 17
Joel 17
Sebastian 18
Matias 19
Cristian 19
Patricio 19


Como condiciono que por ejemplo me devuelva solo de la fila 4 a la 7

Es decir

Ariel 15
Alexis 17
Joel 17
Sebastian 18

Se me habia ocurrido utilizar top pero como identifico a partir de que fila inicie el limite.
  #2 (permalink)  
Antiguo 13/04/2011, 00:43
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Consulta sobre select y numero de filas

¿Por qué quieres esos registros y no otros? ¿Que datos tienen esos registros que te interesen y que los otros no tengan?
  #3 (permalink)  
Antiguo 13/04/2011, 07:49
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta sobre select y numero de filas

Código SQL:
Ver original
  1. CREATE TABLE #temp(
  2. nombre VARCHAR(200),
  3. edad INT
  4. )
  5.  
  6. INSERT INTO #temp
  7. todos los valores jejeje
  8. Patricio,19
  9. Pablo 10
  10. German 14
  11. Nicolas 15
  12. Ariel 15
  13. Alexis 17
  14. Joel 17
  15. Sebastian 18
  16. Matias 19
  17. Cristian 19
  18. Patricio 19
  19.  
  20. [B]Creamos una tabla temporal #temp2 para poner el numero de renglon[/B]
  21. SELECT nombre,edad,IDENTITY(INT,1,1) AS ROW INTO #temp2 FROM #temp
  22.  
  23. [B]Seleccionamos el/los renglones a mostrar[/B]
  24. SELECT * FROM #temp2 WHERE row>=4 AND row<=7


Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 13/04/2011, 08:28
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 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.
  #5 (permalink)  
Antiguo 13/04/2011, 11:50
 
Fecha de Ingreso: noviembre-2007
Mensajes: 43
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Consulta sobre select y numero de filas

Gracias, me sirvio mucho leonardo_josue.

Te agradesco.

Etiquetas: filas, numero, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:06.