IF
Translation reference to convert SQL Server IF..ELSE clauses to Snowflake Scripting
Description
The IF clause allows an SQL statement or a block of statements to be conditionally executed as long as the Boolean expression is true; otherwise, the statements in the optional ELSE clause will be executed. SQL Server also supports embedding multiple IF... ELSE clauses in case multiple conditions are required, or the CASE clause can also be used.
For more information for SQL Server IF...ELSE, check here.
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ] Note: To define a statement block, use the control-of-flow keywords BEGIN and END.
Sample Source Patterns
SQL Server
The following code refers to an IF... ELSE in SQL Server that conditions the variable @value to identify if it is less than 5, if it is between 5 and 10, or if it has any other value. Since @value is initialized as 7, the second condition must be true and the result must be 200.
CREATE OR ALTER PROCEDURE IfElseDemoProcedure
AS
DECLARE @value INT;
SET @value = 7;
IF @value < 5
SET @value = 100;
ELSE IF @value >= 5 AND @value < 10
BEGIN
SET @value = 300;
SET @value = @value - 100;
END;
ELSE
SET @value = -1;
RETURN @value
GO
DECLARE @result INT;
EXEC @result = IfElseDemoProcedure;
PRINT @result;Snowflake Scripting
IF statement outside routines (functions and procedures)
Unlike SQL Server, Snowflake does not support executing isolated statements like IF...ELSE outside routines like functions or procedures. For this scenario, the statement should be encapsulated in an anonymous block, as shown in the following example. You can read more about how to correctly return the output values in the SELECT section.
SQL Server
Snowflake Scripting
Known Issues
No issues were found.
Related EWIs
SSC-EWI-0073: Pending Functional Equivalence Review.
SSC-EWI-0100: Multiple result sets are returned in temporary tables.
Last updated