SQL - 返回有限的行数,但完整的行数

标签 sql visual-foxpro foxpro

场景:我需要从 Visual FoxPro 数据库中提取信息;然而,针对此运行大型查询有锁定系统的趋势。为了解决这个问题,我们设置了限制,在查询运行超过一定时间时取消查询,并限制它将返回的行数。

有没有办法使用“SELECT TOP ###”进行查询,同时返回通过语句找到的实际行数?或者是运行查询两次的唯一方法? (原因是我们仍然可以运行查询,但通知用户发生了什么。即“第一个 ### 显示 ### 找到的项目”)。

我最初的尝试只是简单地在语句的选择部分添加一个“COUNT(*)”,但这并没有完全实现我想要的(它返回了正确的行数,但只返回了一行其余数据)。

最佳答案

如果我正确理解了这个问题,你可以做一个子选择,但这意味着你为返回的每一行调用计数 SQL:

select top 10 field1, field2, (select count(*) from table) as totalrows from table

这将为您提供前 10 行,每行中有一个额外的列,称为 totalrows,包含表中所有行的计数。

不过就我个人而言,我只是运行一个单独的查询来获取前 n 行和计数。

关于SQL - 返回有限的行数,但完整的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200357/

相关文章:

mysql - 将一条表记录插入到另一个表中

mysql - Wordpress Sql meta_value 返回 int 而不是字符串

sql - 恢复的三个阶段 : the analysis phase, 重做阶段,最后是撤消阶段

c# - 如何使用 .NET 提取 FoxPro 备注字段中的数据?

php - 从 PHP/Linux 读取 Foxpro 文件 (.DBF)

excel - 通过 Microsoft Query/Excel 在 FoxPro 查询中使用日期参数

sql - 生成 list 编号

mysql - 单向数据库同步到 MySQL

foxpro - 我可以从 foxpro 通用字段中提取文件吗?

sql-server - 如何伪造旧版本的 SQL Server 以支持遗留应用程序代码