sql - top - ¿Cómo limito la cantidad de resultados devueltos en Sybase?
sybase manual (4)
Con Sybase 12.5 y versiones posteriores, puede usar el predicado superior en su declaración de selección. Esta es una característica no ANSI que MSSQL ha tenido durante bastante tiempo.
select top 10 * from people
No puede usar top en subconsultas, actualizaciones o eliminaciones, y no hay una cláusula ''bottom'' correspondiente.
La ventaja de top es que no tienes que preocuparte por reiniciarlo. Esto es especialmente importante si está utilizando un grupo de conexión de base de datos.
Necesito consultar una base de datos de Sybase que contiene muchos datos y me gustaría establecer un límite para que la base de datos detenga la consulta después de 10 resultados.
La clave es el rendimiento, por lo que no serviría de nada si buscara todos los resultados y luego devolviera los últimos 10 resultados.
Gracias por adelantado
Puede intentar agregar esta cláusula "solo buscar primeras n filas".
Resulta que tropecé con este problema y encontré la respuesta usando TOP y START AT de sybase doc reemplazando MySQL LIMIT. Debe usar ORDER BY para obtener resultados impredecibles.
http://dcx.sybase.com/1101/en/dbusage_en11/first-order-formatting.html
SELECCIONE EL TOP 2, COMIENCE A LOS 5 * DE LOS Empleados ORDENADO POR EL Apellido DESC;
Creo que puede hacer un SET ROWCOUNT 10
primero, luego todas las consultas en esta sesión hasta que un SET ROWCOUNT
adicional no devuelva más de 10 filas. Como señala un comentario, esto afecta a todas las consultas siguientes en la sesión (¡no solo a SELECT
s!) Hasta que se desactiva (configurando a 0) o se establece de forma diferente; este efecto "global" lo hace menos útil que la típica cláusula LIMIT
de otros motores, que son inherentemente por consulta, pero, no creo que puedas hacer nada al respecto.