首页 > 解决方案 > 如何限制在链接服务器上使用 Openquery 返回的行数

问题描述

我有一个 AS400 链接服务器,我正在尝试运行一些查询并获取一些示例集,但我不知道如何限制返回的行数。

我试过了:

SELECT * FROM OPENQUERY(LINKED, 'SELECT * FROM LINKED.APLUS.CUS WHERE CMSUSP != ''S'' LIMIT 100')

SELECT * FROM OPENQUERY(LINKED, 'SELECT TOP(100) * FROM LINKED.APLUS.CUS WHERE CMSUSP != ''S'' ')

我知道我可以将 TOP 添加到 SELECT FROM OPENQUERY,但是当我只需要 100 行时,我试图不让 AS400 返回 100k 行。

标签: sqlsql-serveropenquery

解决方案


根据我对 AS400 系统的经验,我相信您正在寻找FETCH FIRST N ROWS ONLY

SELECT * FROM ... WHERE ... ORDER BY ... FETCH FIRST 100 ROWS ONLY

在您的示例中,这将是:

SELECT * FROM OPENQUERY(LINKED, 'SELECT * FROM LINKED.APLUS.CUS WHERE CMSUSP != ''S'' FETCH FIRST 100 ROWS ONLY')

建议包含一个ORDER BY以确保结果一致。

有关更多详细信息,请参阅此问题和答案:如何在 AS400 中执行 SQL select top N ...


推荐阅读