In Chapter 20, you built SQL statements to retrieve and update rows in a database. You
also learned all the variations of the SELECT statement. Some restrictions, however, can’t be
expressed with a WHERE clause, no matter how complicated. To perform complicated searches,
many programmers would rather write an application to retrieve the desired rows, process them,
and then display some results. The processing could include running totals, formatting of the
query’s output, calculations involving multiple rows of the same table, and so on.