The following example illustrates its use. This statement selects all the columns from the customer master file and puts all of the records in order by total sales in a descending sequence. It then limits the result set to the first 10 rows:
This example is fairly straightforward, but there are other more sophisticated uses for this same tool. Your first inclination might be to use this keyword inside the IN keyword or within a joined sub-select. Unfortunately, it can't be used in those parts of an SQL statement! It can still be used, but it must come at the end of your statement.
If the total sales amount were not stored in the customer master file and had to be derived from the order history file, the statement might look as follows:
SELECT CUSTNAME, TOTSALES FROM CUSTMAST C JOIN (SELECT CUSTNBR,
SUM(SALESAMT) AS TOTSALES FROM ORDERHIST GROUP BY CUSTNBR) AS O ON
C.CUSTNBR = O.CUSTNBR ORDER BY TOTSALES DESC FETCH FIRST 10 ROWS ONLY
This statement creates a temporary file object called O that contains the sales totals from the order history file for each customer. That temporary file is joined to the customer master file to retrieve the name, and then the records are sorted into descending sequence by total sales and the first 10 rows are included. All other records are discarded.
These two examples should give you a pretty good idea of how use the Fetch First keyword to restrict your result set to just the records you want.
Kevin Forsythe has over 18 years of experience working with the iSeries platform and its predecessors. He has been a member of the DMC team for the past nine years. Kevin's primary responsibility is providing iSeries education, but he also provides customers with project management, system design, analysis, and technical construction. In addition to his technical skills (RPG IV, CL, OS/400, SQL, FTP, Query, VB, Net.Data), Kevin possesses the ability to communicate new and complex concepts to his students. He has been the primary instructor for DMC's iSeries-based AS/Credentials training courses since 1997 and has authored courses such as Advanced ILE, SQL, Embedded SQL, Operations Navigator, and Intro to WebSphere Studio. An award-winning speaker, he has spoken at every COMMON Conference since the spring of 2000.