Redshift is a popular Cloud Service Database Provider for most Businesses. Businesses use it for the storage of their data. Redshift scales well to meet the changing storage needs of most Businesses. It also uses various mechanisms to ensure the stored data is secure. Redshift users also have access to tools that can help them to analyze their data.

When using Redshift, you will need to make decisions based on your data. This will require you to implement some logic in your queries. Redshift supports the Redshift CASE Statements that you can use to make decisions when interacting with your Redshift data. It provides you with great flexibility when you are dealing with many results or when there is a need to filter out particular results. 

In this article, we will be discussing the Redshift CASE Statements in detail. You will learn how to use it to filter your results and make decisions based on your data.

Here’s the outline of the article:

Prerequisites for Setting Redshift CASE Statements

This is what you need for implementing Redshift CASE Statements in Redshift:

  • An AWS Redshift Account.
  • Data source Availability
  • Basic SQL knowledge
Facing difficulty in moving data into Redshift?

Use Hevo’s no-code data pipeline platform helps to load data from any data source  to your desired destination. Hevo not only loads the data onto the desired Data Warehouse/destination like Amazon Redshift but also enriches the data and transforms it into an analysis-ready form without having to write a single line of code.

Why Hevo?

  • Live Support: The Hevo team is available round the clock to extend exceptional support to its customers through chat, email, and support calls.
  • Live Monitoring: Hevo allows you to monitor the data flow and check where your data is at a particular point in time.
  • Minimal Learning: Hevo, with its simple and interactive UI, is extremely simple for new customers to work on and perform operations.

Discover why Hevo is rated as 4.3 on G2, pointing toward the intensity and effort toward customer satisfaction and powerful performance. Try out a 14-day free trial for seamless data integration.

Get Started with Hevo for Free

Part 1: Understanding Amazon Redshift

Amazon Redshift is a Managed, Petabyte-Scale Cloud Data Warehouse Platform that makes the larger part of the AWS Cloud Platform. Amazon Redshift provides its users with a platform where they can store all their data and analyze it to extract deep business insights. 

Traditionally, Businesses had to make Sales Predictions and other Forecasts manually. Amazon Redshift does the largest part of the work of analyzing the data to give you time to focus on something else. It also gives you an opportunity to analyze your business data using the latest Predictive Analytics

Work with semistructured data using Amazon Redshift SUPER: Redshift CASE Expression Hevo Data

This way, you can make smart decisions that can drive the growth of your Business. 

Integrate BigQuery to Redshift
Integrate Amazon S3 to Redshift
Integrate Chargebee to Redshift

Part 2: Understanding Redshift CASE Statements

The Redshift CASE Statement is a Conditional Expression just like the If/Then/Else Statements used in other languages. It helps you to specify the result when you have many conditions. It can help you to take different actions based on different conditions in your data. 

Redshift CASE Expression Syntax

There are two types of Redshift CASE Statements, that are:

  • Simple
  • Searched 

Simple CASE Expressions compare an expression with a value. If there is a match, the action specified in the THEN clause is executed. If no match is found, the action specified in the ELSE part is executed.

In Searched CASE Expressions, every CASE is evaluated based on a Boolean Expression. The CASE Statement returns the first CASE that matches the Boolean Expression. If no matching CASE is found from the WHEN clauses, the action specified in the ELSE part is executed.

The Simple Redshift CASE Expression takes the following syntax:

CASE expression
WHEN value THEN result
[WHEN...]
[ELSE result]
END

The Searched Redshift CASE Expression takes the following syntax:

CASE
WHEN boolean condition THEN result
[WHEN...]
[ELSE result]
END

The above parameters are described below:

  • Expression: This can be a column name or a valid expression.
  • Value: The value that expression will be compared with, like a character string or a numeric constant. 
  • Result: The target expression or value is returned when a Boolean Condition or expression is evaluated. 
  • Boolean Condition: A Boolean Condition is said to be valid or true when its value is equal to the constant. If it is true, the action specified in the THEN clause is executed. If it is false, the action specified in the ELSE part is executed. If no ELSE part is specified and the condition is false, the result is NULL.

Redshift CASE Expression Examples

When querying for data from Redshift, you may need to replace some values of a column with other values. You can do this in a SELECT Statement. 

Example 1: Redshift CASE Expression

Let’s say you have a table named US_States. You may need to combine North Carolina and South Carolina into Carolina. This is demonstrated below:

SELECT
  CASE
    WHEN state = 'North Carolina'
      THEN 'Carolina'
    WHEN state = 'South Carolina'
      THEN 'Carolina'
    ELSE state 
  END FROM US_States;

The above CASE Statement will replace all occurrences of “North Carolina” and “South Carolina” with “Carolina”. The other state names will retain their names. 

When the state name is “North Carolina” or “South Carolina”, the corresponding THEN action, which is to replace it with “Carolina”, will be executed.

For the other state names, the ELSE part will be executed.

Example 2: Redshift CASE Expression

Here is another example that uses the same table and column:

SELECT state,
 CASE state
     WHEN 'North Carolina'
       THEN 'Carolina' 
     WHEN 'South Carolina'
       THEN 'Carolina' 
     ELSE 'Other'
 END FROM US_States;

The statement will replace both “North Carolina” and “South Carolina” with “Carolina” and other state names with “Other”. 

Example 3: Redshift CASE Expression

Now, suppose you have a Sales table and you need to group your Customers based on the amount that they have paid. You can use the Redshift CASE Statement as shown below:

SELECT amount,
  CASE WHEN amount<500 THEN 'Group 1'
       WHEN amount>500 THEN 'Group 2'
       ELSE 'Group 3'
  END FROM sales;

The above CASE Statement uses the amount column of table sales to group the users. It will put all Customers who have paid below 500 under Group 1 and those who have paid above 500 under Group 2. Customers who don’t belong to any of those two groups will be put under Group 3. 

You can also use the Redshift CASE Statement to order your table rows properly. Have a look at it in the upcoming example.

Example 4: Redshift CASE Expression

Let’s use the US_States table to demonstrate this. Suppose there are rows in this table with blank values for the state column. You can order them in another way, for example, by city name as demonstrated below:

SELECT *
FROM US_States
ORDER BY
(CASE
    WHEN state IS null
      THEN city
    ELSE state
END)

That is how easy it is to use the Redshift CASE Statement to query and produce desired results.

Conclusion

This is what you’ve learnt in this article:

  • You’ve learnt about Amazon Redshift.
  • You’ve learnt about the Redshift CASE Statement.

While using AWS Redshift Services are insightful, it is a hectic task to set up and manage the proper environment on a regular basis. Extracting and integrating several heterogeneous sources into your Database like Amazon Redshift is also a big task. To make things easier, Hevo comes to your rescue.

Hevo offers smooth, no-code integration from over 150+ sources, enabling you to centralize your data without technical hassle. Try out a 14-day free trial to explore all the features and check out our unbeatable pricing for the best plan for your needs.

Frequently Asked Questions

1. How do I use CASE statements in SELECT queries?

CASE statements can be used inside SELECT clauses in order to calculate fields based on given conditions.

2. Can CASE statements be nested?

CASE statements can even be nested inside each other. This means you can have some pretty involved logic: one case statement results as an input to another case statement. Just be sure to use good syntax with proper bracketing or full ordering so things are clear.

3. How does the CASE statement handle NULL values?

CASE treats NULL values based on how you are defining your conditions. If a condition evaluates to NULL, it will skip to the next WHEN clause. You can explicitly check for NULL using IS NULL or IS NOT NULL.

Share your experience of learning about the Redshift CASE Statements in the comments section below.

Nicholas Samuel
Technical Content Writer, Hevo Data

Nicholas Samuel is a technical writing specialist with a passion for data, having more than 14+ years of experience in the field. With his skills in data analysis, data visualization, and business intelligence, he has delivered over 200 blogs. In his early years as a systems software developer at Airtel Kenya, he developed applications, using Java, Android platform, and web applications with PHP. He also performed Oracle database backups, recovery operations, and performance tuning. Nicholas was also involved in projects that demanded in-depth knowledge of Unix system administration, specifically with HP-UX servers. Through his writing, he intends to share the hands-on experience he gained to make the lives of data practitioners better.