我需要查询里面有很多在它的数据的Sybase数据库,并希望设置限制,因此DB后10个结果停止查询。
关键的是性能,因此,如果找遍了所有结果,然后再回到过去的10个结果将是没有用的。
提前致谢
我需要查询里面有很多在它的数据的Sybase数据库,并希望设置限制,因此DB后10个结果停止查询。
关键的是性能,因此,如果找遍了所有结果,然后再回到过去的10个结果将是没有用的。
提前致谢
我相信你可以做一个SET ROWCOUNT 10
,然后再在这个环节中,直到进一步的所有查询SET ROWCOUNT
将返回超过10行没有更多的。 正如评论指出,这将影响会话中的所有以下查询(不只是SELECT
小号!),直至关闭(通过设置为0),或设置不同的-这个“全球性”的效果使得它比典型的少得心应手LIMIT
子句其他的发动机,这是每次查询的本质,但是,我不认为你可以做任何事情。
与Sybase 12.5及更高版本,你可以在你的SELECT语句中使用TOP谓词。 这是一个非ANSI功能,MSSQL已经有相当长一段时间。
select top 10 * from people
您不能在子查询,更新或删除使用顶部,并没有相应的“底部”的条款。
顶级的好处是,你不必担心将其复位。 如果你使用一个数据库连接池,这一点尤为重要。
我正好绊倒在这个问题上,并使用TOP和START AT从Sybase文档取代MySQL的LIMIT找到答案。 您需要使用ORDER BY的,否则将产生不可预知的结果。
http://dcx.sybase.com/1101/en/dbusage_en11/first-order-formatting.html
SELECT TOP 2 START AT 5 * FROM员工ORDER BY姓DESC;
您可以尝试添加该条款“只取前n行”。