sql - 如何限制在链接服务器上使用 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 行。
解决方案
根据我对 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 ...
推荐阅读
- php - Guzzle getContents()->getBody() - 第二次调用返回空字符串
- apache-spark - 如何使用自定义架构覆盖 csv 文件中的列名?
- bash - 检查图像是否使用 optipng 优化
- react-native - 创建我的项目的构建但失败。反应原生博览会
- angular - 将 Angular 7 Universal 与 Openlayers 5 一起使用
- c++ - 如何在 vtk 中的 3D 表面渲染输出中获取 2D dicom 图像切片的位置
- python - 使用单应投影计算轨迹
- api - IBM Domino 10 - 通过 Domino Data Services API 与 Resource Reservations 集成
- ios - 如何从 iTunesConnect 永久删除应用程序,以便以后无法恢复?
- eloquent - Laravel 获取属于用户的表鬃毛,其中列急切加载