You have a few options to play with. One is to use LIKE 'pe%' on that
column for instance instead of = 'pet'. This will match any character
after 'pe'. If you use the DESCEND keyword on that column in the ORDER BY
clause, you can just FETCH NEXT instead of FETCH PREVIOUS, this makes the
record set look upside down. Yes, you have to expand as much as you can
your result set, but that is precisely the magic of SQL. Placing the
cursor on a specific row: FETCH has several complementary keywords like.
NEXT, PRIOR, FIRST, LAST, BEFORE, AFTER, RELATIVE, and so on. Please refer
to the IBM i DB2 for i SQL Reference manual.

JS

El jue, 5 oct 2023 a las 14:41, Peter Dow (<petercdow@xxxxxxxxx>) escribió:

If the WHERE clause specifies the key > 'pet', are you saying that a
FETCH PREVIOUS will get the record prior to the one with a key of 'pet'?

If not, then you're saying you have to expand the result set to include
record prior to 'pet'. If that's true, then how do you position the SQL
cursor to fetch the 'pet' record after opening the cursor?


On 10/5/2023 9:39 AM, Javier Sanchez wrote:
A scrollable cursor allows you to do that. You only need to define very
well the WHERE and the ORDER BY clauses. When you open the cursor, you
can
even set it to point past the last row/record (or just at the beginning
when opened) and start issuing a FETCH PREVIOUS SQL statement, it is just
the same as READP or READPE. If it gives you back a NOT FOUND sql state,
it is because your WHERE clause was not specifying that condition. By
the
way, you should also check the Optimizer that will tell you to construct
an
index with a specific set of columns/fields based on your query, that way
it won't have to create an access path and the engine will use it every
time you run it.

JS

El jue, 5 oct 2023 a las 10:30, Peter Dow (<petercdow@xxxxxxxxx>)
escribió:

But you can't do a fetch that will retrieve a record before 'pet'.

In RPG, after a setll, you can do a readp.


On 10/4/2023 8:42 AM, Dsternb wrote:
declare a cursor like the following and open it:
select * from xyz
where key1 > 'pet'
or key1 = 'pet' and key2 > 'cat'
or key1 = 'pet' and key2 = 'cat' and key3 > 'purple'
order by key1, key2, key3

each following fetch will read the next record to show.

D*B
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email:MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:https://lists.midrange.com/mailman/listinfo/midrange-l
or email:MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
athttps://archive.midrange.com/midrange-l.

Please contactsupport@xxxxxxxxxxxxxxxxxxxx for any subscription
related
questions.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.