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

SELECT TOP con variable

Estas en el tema de SELECT TOP con variable en el foro de Bases de Datos General en Foros del Web. Hola a todos, No se como hacer, o si se puede hacer, el usar la clausula TOP con una variable, por ejemplo: SELECT TOP @Numero ...
  #1 (permalink)  
Antiguo 17/05/2005, 11:25
 
Fecha de Ingreso: mayo-2003
Mensajes: 28
Antigüedad: 21 años
Puntos: 0
SELECT TOP con variable

Hola a todos,

No se como hacer, o si se puede hacer, el usar la clausula TOP con una variable, por ejemplo:

SELECT TOP @Numero FROM Clientes

y no con una constante:

SELECT TOP 10 FROM Clientes

Lo quiero usar para hacer paginaciones de los registros.

Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 17/05/2005, 11:44
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
prueba este codigo, cuando pones set rowcount le estas diciendo cuantas filas queres que te devuelva, por lo tanto si a maximo le pones 15 te devuelve 15 si le pones 20 te devuelve 20.
ahora bien aki viene el truco, te devuelve 20 y los tienes que ordenar, por ejemplo queres los 25 numeros mas altos tendrias que ponerle a maximo=25 y order by numeros ASC.
Ok
espero y te sirva
Código:
declare @maximo int
set @maximo=10
set rowcount @maximo
select *  from tabla
order by orden
  #3 (permalink)  
Antiguo 17/05/2005, 12:15
 
Fecha de Ingreso: mayo-2003
Mensajes: 28
Antigüedad: 21 años
Puntos: 0
Gracias xcars,

No habia utilizado el ROWCOUNT porque tenia un SELECT dentro de otro SELECT, y me afectaba a los dos, pero he vuelto a darle unas vueltas, y utilizando una tabla temporal dentro del SP para el primer SELECT me ha valido.

Como dato, hay que poner SET ROWCOUNT 0 despues del SELECT en cuestion para que a los siguientes SELECt no les afecte.

gracias y un saludo.
  #4 (permalink)  
Antiguo 17/05/2005, 12:18
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
ah ok, que bueno que lo resolviste
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 19:42.