Mostrar una fila concreta

06/12/2004 - 12:06 por Óscar | Informe spam
Tengo una tabla con, por ejemplo, 10 registros, y me gustaría hacer una
consulta que ordena los registros los mayor a menor en función de un campo y
sólo me mostrase el segundo registro. Algo así:

select * from tabla order by campo

¿Qué debo añadir para ver sólo el segundo registro del resultado?

Muchas gracias por vuestra ayuda.

Saludos,


Óscar

Preguntas similare

Leer las respuestas

#1 Maxi
06/12/2004 - 15:02 | Informe spam
Hola, sqlserver no numera registros :( pero podrias emular esa funcionalidad
y luego filtrar con Where donde el numero sea = a 2

Se paso un link donde se explican algunas tecnicas para numerar registros,
solo deberias luego agregar la condicion que gustes :)

http://www.sqlteam.com/item.asp?ItemID91


Salu2
Maxi


"Óscar" escribió en el mensaje
news:
Tengo una tabla con, por ejemplo, 10 registros, y me gustaría hacer una
consulta que ordena los registros los mayor a menor en función de un campo
y sólo me mostrase el segundo registro. Algo así:

select * from tabla order by campo

¿Qué debo añadir para ver sólo el segundo registro del resultado?

Muchas gracias por vuestra ayuda.

Saludos,


Óscar









Respuesta Responder a este mensaje
#2 Gustavo Larriera [MVP]
06/12/2004 - 15:46 | Informe spam
Si haz hecho la consulta ordenando por un campo que tiene siempre valores
diferentes, puedes entonces hacer una consulta que se quede con el primero
del conjunto resultante de restarle el registro de valor máximo (o mínimo
según hayas ordenado). Por ejemplo:

use tempdb
go

create table t (col1 int, col2 varchar(10))
go

insert t values (1, 'e')
insert t values (2, 'd')
insert t values (3, 'c')
insert t values (4, 'b')
insert t values (5, 'a')

select top 1 * from t where col1 < (select top 1 col1 from t order by col2)
order by col2


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Óscar" wrote in message
news:
Tengo una tabla con, por ejemplo, 10 registros, y me gustaría hacer una
consulta que ordena los registros los mayor a menor en función de un campo
y sólo me mostrase el segundo registro. Algo así:

select * from tabla order by campo

¿Qué debo añadir para ver sólo el segundo registro del resultado?

Muchas gracias por vuestra ayuda.

Saludos,


Óscar









Respuesta Responder a este mensaje
#3 ulises
06/12/2004 - 20:05 | Informe spam
Una variacion a lo indicado por Gustavo :

select top 1 *
from ( select top 2 * from t order by col2 ) td
order by col2 desc

Saludos,
Ulises

Si haz hecho la consulta ordenando por un campo que tiene


siempre valores
diferentes, puedes entonces hacer una consulta que se


quede con el primero
del conjunto resultante de restarle el registro de valor


máximo (o mínimo
según hayas ordenado). Por ejemplo:

use tempdb
go

create table t (col1 int, col2 varchar(10))
go

insert t values (1, 'e')
insert t values (2, 'd')
insert t values (3, 'c')
insert t values (4, 'b')
insert t values (5, 'a')

select top 1 * from t where col1 < (select top 1 col1 from


t order by col2)
order by col2


Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no


otorga ningun
derecho / This posting is provided "AS IS" with no


warranties, and confers
no rights.
"Óscar" wrote in message
news:
Tengo una tabla con, por ejemplo, 10 registros, y me




gustaría hacer una
consulta que ordena los registros los mayor a menor en




función de un campo
y sólo me mostrase el segundo registro. Algo así:

select * from tabla order by campo

¿Qué debo añadir para ver sólo el segundo registro del




resultado?

Muchas gracias por vuestra ayuda.

Saludos,


Óscar













.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida