Sql 是否有可能知道SELECT TOP子句是否已达到最大结果量? 背景:
我正在使用MS Access 2010从vb.net windows应用程序运行一些简单的查询。Sql 是否有可能知道SELECT TOP子句是否已达到最大结果量? 背景:,sql,ms-access-2010,Sql,Ms Access 2010,我正在使用MS Access 2010从vb.net windows应用程序运行一些简单的查询。 我有一个名为“machines”的表,我想用一些筛选条件得到最多100台机器,所以我使用这个查询:从机器中选择TOP 100*,其中Speed可以得到总计数并检查它是否大于100(如果您决定只显示TOP 100),然后您可以告诉用户还有更多记录没有显示 SELECT CASE WHEN COUNT(*) > 100 THEN 'Y' ELSE 'N' END AS MoreRecords
我有一个名为“machines”的表,我想用一些筛选条件得到最多100台机器,所以我使用这个查询:
从机器中选择TOP 100*,其中Speed可以得到总计数并检查它是否大于100(如果您决定只显示TOP 100),然后您可以告诉用户还有更多记录没有显示
SELECT CASE WHEN COUNT(*) > 100 THEN 'Y' ELSE 'N' END AS MoreRecords
FROM Machines
WHERE Speed <= 1500;
选择计数(*)大于100时的大小写,然后选择“Y”或“N”作为更多记录结束
来自机器
其中速度在我看来TOP101
方法不是一个不雅观的解决方案
一种选择是使用两个查询。首次运行:
SELECT COUNT(*) RowCount
FROM Machines
WHERE Speed <= 1500;
选择计数(*)行计数
来自机器
WHERE Speed我已经尝试了您的查询(以及它的一些变体),但在MS Access 2010上似乎不起作用。不管怎样,谢谢。我开始觉得101强没那么糟糕。你的两个选择都会起作用,所以我选择这个作为正确答案。第二种选择似乎效率较低,所以我宁愿选择第一种。然而,由于我必须列出机器,我认为只做一个查询(前101个)更整洁。
SELECT TOP 100 *, (SELECT COUNT(*) FROM Machines WHERE Speed <=1500) AS RowCount
FROM Machines
WHERE Speed <= 1500;