场景:我需要从 Visual FoxPro 数据库中提取信息;但是,对此运行大型查询可能会导致系统锁定。为了解决这个问题,我们设置了限制,如果查询运行超过一定时间,则取消查询,并限制它将返回的行数。
有没有办法使用“SELECT TOP ###”进行查询,同时还返回通过该语句找到的实际行数?或者是运行查询两次的唯一方法? (原因是我们仍然可以运行查询,但通知用户发生了什么。即“第一个显示 ### 找到的项目”)。
我最初的尝试只是简单地将“COUNT(*)”添加到语句的选择部分,但这并没有完全实现我所寻找的目标(它返回了正确的行数,但只返回了一行其余数据)。
如果我正确理解了这个问题,您可以执行子选择,但这意味着您为返回的每一行调用 count SQL:
select top 10 field1, field2, (select count(*) from table) as totalrows from table
这将为您提供前 10 行,每行中都有一个额外的列,称为总行数,其中包含表中所有行的计数。
但就我个人而言,我只是运行一个单独的查询来获取顶部n行数和计数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)