Chapter 10. Conditional Logic
In certain situations, you may want your SQL statement to behave differently depending on the values of certain columns or expressions, which is known as conditional logic. The mechanism used for conditional logic in SQL statements is the case
expression, which can be utilized in insert
, update
, and delete
statements, as well as in every clause of a select
statement.
What Is Conditional Logic?
Conditional logic is the process by which one of several paths can be taken. For example, a company’s order entry system may have logic specifying that a 10% discount be given if that customer’s orders exceeded a certain value for the previous year. If you have written programs using a language like Python or Java, you are accustomed to using if...then...else
statements, but the SQL language uses case
expressions for conditional logic. The case
expression works like a cascading if-then-else statement, evaluating a series of conditions in sequence. Here’s a simple example:
PUBLIC>select c_custkey, c_name, c_acctbal, case when c_acctbal < 0 then 'generate refund' when c_acctbal = 0 then 'no action' else 'send bill' end as month_end_action from customer limit 15; +-----------+--------------------+-----------+------------------+ | C_CUSTKEY | C_NAME | C_ACCTBAL | MONTH_END_ACTION | |-----------+--------------------+-----------+------------------| | 60001 | Customer#000060001 | 9957.56 | ...
Get Learning Snowflake SQL and Scripting now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.