DEV Community

Judy
Judy

Posted on

2 1 1 1 1

Get the First Missing Item for the Sequence of Should-have-been Continuous Sequence Numbers #eg16

Problem description & analysis

We have a table BOOK_CAPTER in the database. The data is as follows:

Image description
We are trying to find the first missing item for the sequence that should have contained continuous sequence numbers (CAPTER_INTERNAL_NUMBER) in each group of BOOK_ID. Below is the desired result:

Image description
Solution

Write the following script p1.dfx in esProc:

Image description
Explanation:

A1   Connect to the database named demo.

A2  Return the query result as a table sequence and close database connection when code is executed.

A3  Create the result empty table sequence made up of fields BOOK_ID and NUM.

A4  Loop through A2, during which if the current ID exists in the result table sequence (A3), go on to check ID in the next record; and if the current ID is not equal to the previous ID and the current N isn’t 1, append record [the current ID,1] to A3; and if the current ID is not equal to the previous ID and the current N and the N in the previous record are not continuous, append record [the current ID, the previous record’s N+1] to A3; and if the current ID is not equal to the next ID, append record [the current ID, the current N+1] to A3.

Read How to Call an SPL SCript in Java to learn about the method of integrating the SPL script with a Java program.

Q & A Collection

https://stackoverflow.com/questions/64144082/find-first-available-value-that-doesnt-exist

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (1)

Collapse
 
esproc_spl profile image
Judy

SPL open source address:github.com/SPLWare/esProc

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay