Как ограничить количество строк, возвращаемых с помощью Openquery на связанном сервере - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть связанный сервер 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'' ')

Я знаю, что могу добавить ТОП в SELECT FROM OPENQUERY, но я стараюсь, чтобы AS400 не возвращал 100 тыс. Строк, когда мне нужно только 100 .

1 Ответ

0 голосов
/ 07 февраля 2020

Исходя из моего опыта работы с системой AS400, я считаю, что вы ищете ПОЛУЧИТЬ ПЕРВЫЕ N ТОЛЬКО СТРОК

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, чтобы обеспечить согласованность результатов.

См. Этот вопрос и ответ для получения дополнительной информации: Как сделать SQL выбрать верхнюю N. .. в AS400

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...