ILE RPG静态SQL获取游标的第一行

nic*_*owi 2 sql db2 rpgle db2-400

我的代码:

     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;
Run Code Online (Sandbox Code Playgroud)

我只需要最大数量的游标 - 所以ORDER BY DESC.

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

Cha*_*les 7

 EXEC SQL
     FETCH C1 INTO :a;
Run Code Online (Sandbox Code Playgroud)

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

但是,如果您知道只需要1行,那么最好使用SELECT INTOwithFETCH 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;
Run Code Online (Sandbox Code Playgroud)