neosqlite.collection.expr_evaluator.sql_converters.conditional module

SQL converters for conditional operators.

class neosqlite.collection.expr_evaluator.sql_converters.conditional.ConditionalMixin[source]

Bases: BaseSqlMixin

$cond / $ifNull → SQL CASE / COALESCE.

_convert_cond_operator(operands: dict[str, Any]) tuple[str, list[Any]][source]

Convert $cond operator to SQL CASE statement.

_convert_ifNull_operator(operands: list[Any]) tuple[str, list[Any]][source]

Convert $ifNull operator to SQL COALESCE.

_convert_switch_operator(operands: dict[str, Any]) tuple[str, list[Any]][source]

Convert $switch operator to SQL CASE statement.

MongoDB syntax:
{ $switch: {
branches: [

{ case: <expr>, then: <expr> }, …

], default: <expr> // optional

} }

SQL equivalent:
CASE

WHEN <case1> THEN <then1> WHEN <case2> THEN <then2> … ELSE <default> // NULL if omitted

END