Replacing UNION with CASE

By | In Blog, DB2 | November 22nd, 2017

When a UNION is required to put together data from multiple queries, you might be able to use a CASE statement instead. This is very useful, particularly when the data for each of the queries in the UNION come from the same table. The CASE statement can potentially enhance performance by minimizing the number of times the data is read.

Let’s look at an example to clarify why:

SELECT CREATOR, NAME, ‘TABLE’
FROM SYSIBM.SYSTABLES
WHERE TYPE = ‘T’
UNION
SELECT CREATOR, NAME, ‘VIEW ‘
FROM SYSIBM.SYSTABLES
WHERE TYPE = ‘V’
UNION
SELECT CREATOR, NAME, ‘ALIAS’
FROM SYSIBM.SYSTABLES
WHERE TYPE = ‘A’
ORDER BY NAME;

This simple SQL statement uses UNION to put together the results of three queries against the SYSTABLES table. The report shows all of the DB2 table-like objects that exist in the DB2 subsystem: tables, views, and synonyms.

To do this, DB2 must scan through the table three times – once for each query (as there is no index on the TYPE column). But, you can use CASE and code an equivalent, but more efficient query, as follows:

SELECT CREATOR, NAME,
CASE TYPE
WHEN ‘T’ THEN ‘TABLE’
WHEN ‘V’ THEN ‘VIEW ‘
WHEN ‘A’ THEN ‘ALIAS’
END
FROM SYSIBM.SYSTABLES
ORDER BY NAME;

This new query will need to scan SYSTABLES only once. The CASE statement will translate the code in the TYPE column into the text that we desire.

CASE statements are very powerful and you should use them when you can to create elegant and optimal SQL in your DB2 applications.

This post was originally published on Craig Mullins’ blog at: http://db2portal.blogspot.com/2009/11/replacing-union-with-case.html

For additional resources please download my white paper: “The Many Different Types of DBAs”

 

Contact Us
Craig Mullins
Consultant at Mullins Consulting, Inc

Craig S. Mullins is working with Datavail and its DB2 practice to expand offerings. He is president and principal consultant at Mullins Consulting, Inc. and the publisher of The Database Site. Mullins has 30 years of experience in all facets of database management and is the author of two books: “DB2 Developer’s Guide” currently in its 6th edition and “Database Administration: The Complete Guide to DBA Practices and Procedures,” the industry’s only guide to heterogeneous DBA.

Leave a Reply

Your email address will not be published.
Required fields are marked (*).