ILE RPG Static SQL 获取游标的第一行

ILE RPG Static SQL Fetch first row of a cursor

我的代码:

     EXEC SQL
     DECLARE C1 CURSOR
     FOR SELECT * FROM a
     WHERE :field LIKE CONCAT(TRIM(a.number), '%')
     ORDER BY a.number DESC;

     EXEC SQL
     OPEN C1;

     EXEC SQL
     FETCH C1 INTO :a;

我只需要游标的最高编号 - 所以 ORDER BY DESC。

如何只获取游标 C1 的第一行?

 EXEC SQL
     FETCH C1 INTO :a;

只获取一行...所以只执行一次。

但是,如果您知道只需要 1 行,则最好将 SELECT INTOFETCH FIRST ROW ONLY 一起使用

exec sql
  SELECT * 
    FROM a
    INTO :a
   WHERE :field LIKE CONCAT(TRIM(a.number), '%')
   ORDER BY a.number DESC
   FETCH FIRST ROW ONLY;