# Logical Functions

Logical functions return value based on some logical conditions.

## case when​

case(when: condition_expression, then: value_expression, else: value_expression)            

Description

The CASE statement goes through conditions and returns a value when the first condition is met (like an IF-THEN-ELSE statement).

Return type

Vary

Example

Given a Holistics expression as below:

case(when: users.gender == 'm', then: 'male',when: users.gender == 'f', then: 'female',else: 'others')

The SQL output would be:

Case   When users.gender = 'm' then 'male'  When users.gender = 'f' then 'female'  Else 'others'End

And the result would be:

gendercase
mmale
ffemale
mmale

## and()​

and(condition_expression, ...)          

Description

Logical AND compares between two Booleans as expression and returns true when both expressions are true.

Return type

Boolean

Example

Given a Holistics expression as below:

and(    products.id >= 2,    products.id <= 8  )

The SQL output would be:

((products.id >= 2.0) AND (products.id <= 8.0))

And the result would be:

idand
1false
2true
8true
9false

## or()​

or(condition_expression, ...)       

Description

Logical OR compares two Booleans as expression and returns true when one of the expressions is true.

Return type

Boolean

Example

Given a Holistics expression as below:

or(condition_expression, ...)

The SQL output would be:

or(    products.id <= 2,    products.id >= 8  )

And the result would be:

idor
1true
4false
7false
9true

## not()​

not(field_expression)       

Description

Logical NOT takes a single Boolean as an argument and invert it.

Return type

Boolean

Example

Given a Holistics expression as below:

not(is(products.id, null))

The SQL output would be:

NOT (products.id IS NULL)

And the result would be:

idnot
1true
false
3true
4true

## is()​

is(field_expression)        

Description

Logical IS evaluates the given statement and return either true or false.

Return type

Boolean

Example

Given a Holistics expression as below:

is(products.id, null))

The SQL output would be:

(products.id IS NULL)

And the result would be:

idnot
1false
true
3false
4false

## in()​

in(field_expression, value_expression, value...)    

Description

in operator takes a field expression and a list of values. Return true if that list of values contains the value of that field expression.

Return type

Boolean

Example

Given a Holistics expression as below:

in(users.name, 'bob', 'alice', 'jack)

The SQL output would be:

user.name in ('bob', 'alice', 'jack)

And the result would be:

namein
bobtrue
alicetrue
peterfalse