0

我一直在寻找如何返回一组类似于SELECT TOP 100 * FROM CUSTOMERor SELECT * FROM CUSTOMER LIMIT 100or的有限行SELECT * FROM CUSTOMER WHERE ROWNUM <= 100,而在我的一生中,我找不到使用这个特定数据库执行此操作的方法。

数据库版本是 10.1.46,我找到了 SQLBase 更高版本的文档,其中说应该使用 Limit 关键字,但是在尝试限制使用 isql 返回的行数时没有任何效果。抛出 SQL Prepare 错误。我不知道如何做到这一点,我开始认为数据库不支持限制返回的行数。

我希望有人知道如何限制返回的记录数。

4

2 回答 2

1

就问题而言,limit使用会话参数在 Base SQL 中实现:

SET LIMIT 100
SELECT * FROM CUSTOMER;
SET LIMIT OFF
于 2020-02-21T20:58:00.430 回答
0

除了“LIMIT”,您可以在 SQLTalk 中使用“PERFORM”然后“FETCH”:

PREPARE SELECT * from CUSTOMER ORDER BY <column1> DESC;
PERFORM;
FETCH 100;

或者,如果您使用的是 TeamDeveloper,

简单地:

SqlPrepareAndExecute( hSql, 'SELECT * from CUSTOMER ORDER BY <column1> DESC')
While nPtr < 101
Call SqlFetchNext(hSql,nReturn)

在 v11.7 之后,您可以使用以下语法:

SELECT * FROM CUSTOMER LIMIT 100

ps 如果您需要 v8 到 v12.2 的任何版本的 SQLBase 手册,请转到此处: SQLBase 手册(所有版本)

于 2020-02-23T19:57:27.863 回答