Funcion inversa TOP

23/07/2004 - 11:25 por erseco | Informe spam
Hola, necesito generar un select que me devuelva los últimos registros
de una tabla, para devolver las primeras uso SELECT TOP 10 * FROM
[tabla]

sé que haciendo un [order by desc] podria conseguir esto, pero me
gustaría conseguirlo sin tener que cambiar el orden

¿Existe alguna funcion inversa para TOP o algun parametro de esta para
devolver los últimos en vez de los primeros?

Gracias!!

Preguntas similare

Leer las respuestas

#1 Carlos Sacristan
23/07/2004 - 12:06 | Informe spam
No hay una función inversa de TOP porque no existe tal concepto.

La cláusula TOP devuelve los n primeros registros de un conjunto de
datos y como todo buen conjunto, por principio no tiene orden definido. Es
decir, que si estás usando TOP sin la cláusula ORDER BY lo estás haciendo
mal, pues nada te garantiza que los datos vayan a aparecer siempre en el
orden en el que te aparecen.

Conclusión: si quieres los n últimos registros, hay que utilizar ORDER
BY campo DESC


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"erseco" escribió en el mensaje
news:cdqli7$
Hola, necesito generar un select que me devuelva los últimos registros
de una tabla, para devolver las primeras uso SELECT TOP 10 * FROM
[tabla]

sé que haciendo un [order by desc] podria conseguir esto, pero me
gustaría conseguirlo sin tener que cambiar el orden

¿Existe alguna funcion inversa para TOP o algun parametro de esta para
devolver los últimos en vez de los primeros?

Gracias!!
Respuesta Responder a este mensaje
#2 Salvador Ramos
23/07/2004 - 12:21 | Informe spam
NO, la cláusula TOP devuelve siempres las N primeras filas.

Un saludo
Salvador Ramos
Murcia - España
[MVP SQL Server]
www.helpdna.net

"erseco" escribió en el mensaje
news:cdqli7$
Hola, necesito generar un select que me devuelva los últimos registros
de una tabla, para devolver las primeras uso SELECT TOP 10 * FROM
[tabla]

sé que haciendo un [order by desc] podria conseguir esto, pero me
gustaría conseguirlo sin tener que cambiar el orden

¿Existe alguna funcion inversa para TOP o algun parametro de esta para
devolver los últimos en vez de los primeros?

Gracias!!
Respuesta Responder a este mensaje
#3 Antares
23/07/2004 - 18:02 | Informe spam
lo que te podria recomendar para realizar lo que quieres
con seguir es lo siguiente,

Realiza una consulta con el TOP n que desea, utilizando
el ORDER BY campo DESC, pero solo con el identificador
de los datos que deseas utilizar, posterior crea tu vista
y filtrala por los campos seleccionados sin ordenar
ejemplo:


Select * from [tabla]
where identificador in (select top 10 identificador from
[tabla] order by campo desc)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida