IfElse Statement
The ifelse
statement is used to create conditional branching in SurrealDB. It allows you to execute different expressions or statements based on specified conditions. Here are some examples and usage scenarios for the ifelse
statement.
Table of Contents
- Statement Syntax
- Creating an If Statement
- Adding Else If Statements
- Adding an Else Statement
- Nested If Else Statements
- Using Subqueries in If Else Statements
Statement Syntax
The syntax for the ifelse
statement is as follows:
if_(condition)
.then(expression)
.else_if(condition)
.then(expression)
.else_if(condition)
.then(expression)
.else_(expression)
.end();
Creating an If Statement
You can create a simple if
statement using the if_
function. Here's an example:
#![allow(unused)] fn main() { use surreal_orm::*; let age = Field::new("age"); let if_statement = if_(age.greater_than_or_equal(18)) .then("Valid".to_string()) .end(); }
Adding Else If Statements
You can add multiple else if
statements to the ifelse
statement. Here's an example:
#![allow(unused)] fn main() { let name = Field::new("name"); let age = Field::new("age"); let if_statement = if_(age.greater_than_or_equal(18)) .then("Valid") .else_if(name.like("Oyelowo Oyedayo")) .then("The Alien!") .end(); }
Adding an Else Statement
You can add an else
statement to the ifelse
statement to handle cases when none of the previous conditions are met. Here's an example:
#![allow(unused)] fn main() { let age = Field::new("age"); let if_statement = if_(age.greater_than_or_equal(18)) .then("Valid") .else_("Invalid") .end(); }
Nested If Else Statements
You can nest ifelse
statements within each other to create complex conditional logic. Here's an example:
#![allow(unused)] fn main() { let name = Field::new("name"); let age = Field::new("age"); let country = Field::new("country"); let if_statement = if_(age.greater_than_or_equal(18)) .then("Valid") .else_if(name.like("Oyelowo Oyedayo")) .then("The Alien!") .else_if(cond(country.is("Canada")).or(country.is("Norway"))) .then("Cold") .else_("Hot") .end(); }
Using Subqueries in If Else Statements
You can use subqueries in the ifelse
statement to execute more complex expressions or statements. Here's an example:
#![allow(unused)] fn main() { let name = Field::new("name"); let age = Field::new("age"); let country = Field::new("country"); let city = Field::new("city"); let fake_id = sql::Thing::from(("user".to_string(), "oyelowo".to_string())); let fake_id2 = sql::Thing::from(("user".to_string(), "oyedayo".to_string())); let statement1 = select(All) .from(fake_id) .where_( cond(city.is("Prince Edward Island")) .and(city.is("NewFoundland")) .or(city.like("Toronto")), ) .order_by(order(&age).numeric()) .limit(153) .start(10) .parallel(); let statement2 = select(All) .from(fake_id2) .where_(country.is("INDONESIA")) .order_by(order(&age).numeric()) .limit(20) .start(5); let if_statement = if_(age.greater_than_or_equal(18).less_than_or_equal(120)) .then(statement1) .else_if(name.like("Oyelowo Oyedayo")) .then(statement2) .else_if(cond(country.is("Canada")) .or(country.is("Norway"))) .then("Cold") .else_("Hot") .end(); }