Duda sobre consulta habitual.

07/02/2007 - 19:45 por Carlos Gómez | Informe spam
Mi duda es la siguiente:

Obtener un numero concreto de registros con un id inferior a uno dado.

Es decir, si tengo una tabla con los siguientes valores:

Id
1
2
4
6
10
11

y yo quiero obtener los 3 registros anteriores al id (2,4 y 6),
entonces hago lo siguiente:

SELECT A.*
FROM Tabla AS A
WHERE A.Id IN
(SELECT TOP 3 Id FROM Tabla
WHERE Id<10
ORDER BY Id DESC)
ORDER BY Id ASC --Si los queremos tener ordenados finalmente

Lo cual me parece un tanto rebuscado.
¡y es una tabla simple, cuando está relacionada y hay que hacer INNER
JOIN, ya me parece una pasada para algo tan habitual!

¿Hay alguna forma más simple?
 

Leer las respuestas

#1 Carlos Sacristan
07/02/2007 - 20:21 | Informe spam
Pues por ejemplo,

SELECT TOP 3 * FROM Tabla WHERE id < 10 ORDER BY Id DESC




"Carlos Gómez" escribió en el mensaje
news:
Mi duda es la siguiente:

Obtener un numero concreto de registros con un id inferior a uno dado.

Es decir, si tengo una tabla con los siguientes valores:

Id
1
2
4
6
10
11

y yo quiero obtener los 3 registros anteriores al id (2,4 y 6),
entonces hago lo siguiente:

SELECT A.*
FROM Tabla AS A
WHERE A.Id IN
(SELECT TOP 3 Id FROM Tabla
WHERE Id<10
ORDER BY Id DESC)
ORDER BY Id ASC --Si los queremos tener ordenados finalmente

Lo cual me parece un tanto rebuscado.
¡y es una tabla simple, cuando está relacionada y hay que hacer INNER
JOIN, ya me parece una pasada para algo tan habitual!

¿Hay alguna forma más simple?

Preguntas similares