Flipping Rows to Columns

Flipping Rows to Columns

How can I select rows in a table and output them as columns in a resulting table? In other words, I need to “flip” my rows to columns and columns to rows. Any ideas or methods?

You are searching for crosstabs. Take a look in the archives for the previous cites for the books, as I don’t have them handy now, but what you need to do is to create column headings in the statement using a CASE statement. This will let you construct the result table to your specifications.

The statement will look something like this:

SELECT month = case when month = 1 then January end

so that by naming the columns in the CASE statement you get to spell the structure of the table.

One of the major limitations of these crosstab schemes is that you need to know how many column-to-row transformations you need at the beginning; that’s why I used months in my example. I’ve also run into the case where one dimension of what I was looking at was beyond the number of columns to display (a health care census problem).


Share the Post: