Published on

December 4, 2016

Using OR Condition in CASE WHEN Statement – SQL Server

When working with SQL Server, you may come across situations where you need to use multiple conditions in a CASE WHEN statement. However, using the OR condition directly in a CASE statement is not possible due to the structure of the statement.

In this blog post, we will explore two different methods to achieve the desired result when using multiple conditions in a CASE statement.

Method 1: Simple CASE Expressions

A simple CASE expression allows you to check one expression against multiple values. It only allows for an equality check and does not support other types of comparisons.

Here is an example of how to use a simple CASE expression:

DECLARE @TestVal INT
SET @TestVal = 3

SELECT
    CASE @TestVal
        WHEN 1 THEN 'First'
        WHEN 2 THEN 'Second'
        WHEN 3 THEN 'Third'
        ELSE 'Other'
    END

In this example, the value of @TestVal is compared to each WHEN clause. If a match is found, the corresponding THEN clause is returned. If no match is found, the ELSE clause is returned.

Method 2: Searched CASE Expressions

A searched CASE expression allows you to use comparison operators, as well as AND and OR conditions between each Boolean expression.

Here is an example of how to use a searched CASE expression:

DECLARE @TestVal INT
SET @TestVal = 5

SELECT
    CASE
        WHEN @TestVal >= 3 THEN 'Top 3'
        ELSE 'Other'
    END

In this example, the Boolean expression @TestVal >= 3 is evaluated. If the expression is true, the corresponding THEN clause is returned. If the expression is false, the ELSE clause is returned.

By using these two methods, you can achieve the desired result when working with multiple conditions in a CASE WHEN statement.

For more examples and explanations on using the CASE statement in SQL Server, you can refer to the following related blog posts:

Thank you for reading! If you have any questions or comments, feel free to leave them below.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.