当前位置: 首页 > 知识库问答 >
问题:

DB2 AS/400版本4的SQL查询限制

勾炳
2023-03-14

我知道版本太老了(是的,版本4!),但我别无选择。

如何限制我的查询(例如,100行)仅适用于DB2AS400?

FETCH FIRST n ROWS ONLY
ROW_NUMBER()
SELECT POLNOP FROM ZICACPTF.POLHDR FETCH FIRST 10 ROWS ONLY

上面写着

[SQL0199]不需要关键字提取。有效令牌:FOR WITH ORDER UNION Optimize。

共有1个答案

郑和泰
2023-03-14

dbms不支持此操作,请检查版本4 DB2 UDB中的AS/400 SQL引用:nolimit,top,first,...保留字。

您可以尝试通过where子句where sequence between 100和200来限制行。但这是一个不真实的场景。

首先是通过游标:

DECLARE ITERROWS INTEGER;
...
SET ITERROWS = 0;
DO WHILE (SUBSTR(SQLSTATE,1,2) = '00' and ITERROWS < 100
DO
    ...
    SET ITERROWS = ITERROWS + 1;

我希望有人发布一个聪明的变通办法,但,在我看来,他们不是。

 类似资料:
  • 问题内容: 我非常确定我们不能将LIMIT子句用于我想做的事情-因此想确定是否还有其他方法可以实现此目的。 我有一个表,其中捕获了哪个用户访问了哪个商店。每次用户访问商店时,都会在此表中插入一行。 一些领域是 shopping_id(primary key) store_id user_id 现在,我想要的是-对于给定的一组商店,找到访问该商店的最大次数的前5位用户。 我可以一次在1个商店中进行以

  • 在处理Laravel时,我们会这样做: 如何查看生成的sql查询?这对于开发过程中的调试非常重要。 谢谢你。

  • 在Laravel 4中记录SQL查询已经有几个问题。但是我已经尝试了几乎所有的方法,但仍然没有达到我想要的效果。 这是我的情况 > 在我的php视图文件中,我向服务器发出AJAX请求 接收到AJAX请求并运行RAW参数化的PostgresSQL查询(例如: DB::选择('选择*从my_table其中id=?',数组(1)) 如果我用 我只得到“从我的_表中选择*,其中id=?”作为没有实际填充I

  • 问题内容: 关于在Laravel 4中记录SQL查询,已经有几个问题。但是我已经尝试了几乎所有问题,但仍然无法按照我想要的方式工作。 这是我的情况 在我的php视图文件中,我向服务器发出AJAX请求 接收到AJAX请求并运行RAW参数化的Postgres SQL查询(例如 DB :: select(’select * from my_table where id =?’,array(1)) 如果我

  • 问题内容: 我想知道是否可以限制SQL请求的结果? 例如,最多只返回以下内容的50行: 谢谢。 问题答案: 是的,这是可能的。这在数据库引擎之间有所不同。 Postgres: SQL Server: …

  • 我正在建立一个图书馆数据库。我想编写一个查询,返回每个类别的前5本书,这意味着它必须返回每个类别借阅次数最多的5本书以及借阅次数。 查询涉及以下表: Book(ISBN, title, pubYork, numpage, pubName) borrows(memberID, ISBN, Copnr,date_of_borrowing,date_of_return) belongs_to(ISBN,