Case Statement Tricks | Database Journal

Case Statement Tricks

Written By
Neil Boyle
Neil Boyle
Mar 18, 2001
2 minute read

The CASE statement is a very flexible tool. Here are just a few of the tricks
you can work with it.

Item translation

One of the simplest things you can do is to derive a columns contents based
on it’s contents, or the contents of another data item.

Click here for code example 1.

Titling subtotals

You can use CUBE and ROLLUP to produce totals and subtotals within a result
set, but because SQL Server places NULLS for non-totaled columns in the total
rows, they do not always look very pretty. In this example we use the CASE
statement to place emphasis on the subtotal lines.

Click here for code example 2.

Simplifying Output

This batch lists of sales by store, and gives a general indication of the
stores performance against the average quantity of sales per store.

Click here for code example 3.

This query batch starts by calculating the average of total sales per store,
which is stored in the variable @storeAvg, then that average is used to rate the
stores sales performance.

Advertisement

Grouping data into ranges

This example calculates the number of orders in certain size ranges. It also
shows off the power of SQL as a set-based language: to code this as in a
procedural language like VB would not be able to do this in a single statement.

Click here for code example 4.

Complex Sequencing

CASE statements can be used in an ‘ORDER BY clause to order non-sequential
data. This example sorts stores by name, but puts all the stores in California
at the top of the list.

SELECT stor_name, state
FROM   stores
ORDER  BY CASE state
          WHEN 'CA' then 1
          ELSE 2
       END,
       stor_name

Further reading

This article discusses how to increase performance of complex
UPDATE statements
by using CASE.

This SQL 2000 article contains a section that shows how to use the CASE
statement in a User
Defined Function
to enforce complex declarative constraints

Neil Boyle

Neil Boyle left school at the age of sixteen thinking that computers were things that only existed in Star Trek. After failed careers as a Diesel Mechanic, Industrial Cleaner, Barman and Bulldozer Driver he went back to college to complete his education. Since graduating from North Staffs Poly he has worked up through the ranks from Trainee COBOL Programmer to SQL Server Consultant, a role in which he has specialised for the past seven years.

Database Journal Logo

DatabaseJournal.com publishes relevant, up-to-date and pragmatic articles on the use of database hardware and management tools and serves as a forum for professional knowledge about proprietary, open source and cloud-based databases--foundational technology for all IT systems. We publish insightful articles about new products, best practices and trends; readers help each other out on various database questions and problems. Database management systems (DBMS) and database security processes are also key areas of focus at DatabaseJournal.com.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.