pub struct CaseStatement { /* private fields */ }
Implementationsยง
Sourceยงimpl CaseStatement
impl CaseStatement
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new case statement expression
ยงExamples
use sea_query::{*, tests_cfg::*};
let query = Query::select()
.expr_as(
CaseStatement::new()
.case(Expr::col((Glyph::Table, Glyph::Aspect)).is_in([2, 4]), true)
.finally(false),
"is_even"
)
.from(Glyph::Table)
.to_owned();
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"SELECT (CASE WHEN ("glyph"."aspect" IN (2, 4)) THEN TRUE ELSE FALSE END) AS "is_even" FROM "glyph""#
);
Sourcepub fn case<C, T>(self, cond: C, then: T) -> Self
pub fn case<C, T>(self, cond: C, then: T) -> Self
Adds new CASE WHEN
to existing case statement.
ยงExamples
use sea_query::{*, tests_cfg::*};
let query = Query::select()
.expr_as(
Expr::case(
Expr::col((Glyph::Table, Glyph::Aspect)).gt(0),
"positive"
)
.case(
Expr::col((Glyph::Table, Glyph::Aspect)).lt(0),
"negative"
)
.finally("zero"),
"polarity"
)
.from(Glyph::Table)
.to_owned();
assert_eq!(
query.to_string(PostgresQueryBuilder),
r#"SELECT (CASE WHEN ("glyph"."aspect" > 0) THEN 'positive' WHEN ("glyph"."aspect" < 0) THEN 'negative' ELSE 'zero' END) AS "polarity" FROM "glyph""#
);
Sourcepub fn finally<E>(self, else: E) -> Self
pub fn finally<E>(self, else: E) -> Self
Ends the case statement with the final ELSE
result.
ยงExamples
use sea_query::{*, tests_cfg::*};
let query = Query::select()
.expr_as(
Expr::case(
Cond::any()
.add(Expr::col((Character::Table, Character::FontSize)).gt(48))
.add(Expr::col((Character::Table, Character::SizeW)).gt(500)),
"large"
)
.case(
Cond::any()
.add(Expr::col((Character::Table, Character::FontSize)).between(24,48))
.add(Expr::col((Character::Table, Character::SizeW)).between(300,500)),
"medium"
)
.finally("small"),
"char_size")
.from(Character::Table)
.to_owned();
assert_eq!(
query.to_string(PostgresQueryBuilder),
[
r#"SELECT"#,
r#"(CASE WHEN ("character"."font_size" > 48 OR "character"."size_w" > 500) THEN 'large'"#,
r#"WHEN (("character"."font_size" BETWEEN 24 AND 48) OR ("character"."size_w" BETWEEN 300 AND 500)) THEN 'medium'"#,
r#"ELSE 'small' END) AS "char_size""#,
r#"FROM "character""#
]
.join(" ")
);
Trait Implementationsยง
Sourceยงimpl Clone for CaseStatement
impl Clone for CaseStatement
Sourceยงfn clone(&self) -> CaseStatement
fn clone(&self) -> CaseStatement
Returns a duplicate of the value. Read more
1.0.0 ยท Sourceยงfn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSourceยงimpl Debug for CaseStatement
impl Debug for CaseStatement
Sourceยงimpl Default for CaseStatement
impl Default for CaseStatement
Sourceยงfn default() -> CaseStatement
fn default() -> CaseStatement
Returns the โdefault valueโ for a type. Read more
Sourceยงimpl Into<Expr> for CaseStatement
impl Into<Expr> for CaseStatement
Sourceยงimpl PartialEq for CaseStatement
impl PartialEq for CaseStatement
impl StructuralPartialEq for CaseStatement
Auto Trait Implementationsยง
impl Freeze for CaseStatement
impl RefUnwindSafe for CaseStatement
impl Send for CaseStatement
impl Sync for CaseStatement
impl Unpin for CaseStatement
impl UnwindSafe for CaseStatement
Blanket Implementationsยง
Sourceยงimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Sourceยงfn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Sourceยงimpl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Sourceยงimpl<T> ExprTrait for T
impl<T> ExprTrait for T
Sourceยงfn as_enum<N>(self, type_name: N) -> Exprwhere
N: IntoIden,
fn as_enum<N>(self, type_name: N) -> Exprwhere
N: IntoIden,
Express a
AS enum
expression. Read moreSourceยงfn cast_as<N>(self, type_name: N) -> Exprwhere
N: IntoIden,
fn cast_as<N>(self, type_name: N) -> Exprwhere
N: IntoIden,
Express a
CAST AS
expression. Read moreSourceยงfn equals<C>(self, col: C) -> Exprwhere
C: IntoColumnRef,
fn equals<C>(self, col: C) -> Exprwhere
C: IntoColumnRef,
Express a equal expression between two table columns,
you will mainly use this to relate identical value between two table columns. Read more
Sourceยงfn in_subquery(self, sel: SelectStatement) -> Expr
fn in_subquery(self, sel: SelectStatement) -> Expr
Express a
IN
sub-query expression. Read moreSourceยงfn in_tuples<V, I>(self, v: I) -> Exprwhere
V: IntoValueTuple,
I: IntoIterator<Item = V>,
fn in_tuples<V, I>(self, v: I) -> Exprwhere
V: IntoValueTuple,
I: IntoIterator<Item = V>,
Express a
IN
sub expression. Read moreSourceยงfn is_not_null(self) -> Expr
fn is_not_null(self) -> Expr
Express a
IS NOT NULL
expression. Read moreSourceยงfn left_shift<R>(self, right: R) -> Expr
fn left_shift<R>(self, right: R) -> Expr
Express a bitwise left shift. Read more
Sourceยงfn not_between<A, B>(self, a: A, b: B) -> Expr
fn not_between<A, B>(self, a: A, b: B) -> Expr
Express a
NOT BETWEEN
expression. Read moreSourceยงfn not_equals<C>(self, col: C) -> Exprwhere
C: IntoColumnRef,
fn not_equals<C>(self, col: C) -> Exprwhere
C: IntoColumnRef,
Express a not equal expression between two table columns,
you will mainly use this to relate identical value between two table columns. Read more
Sourceยงfn not_in_subquery(self, sel: SelectStatement) -> Expr
fn not_in_subquery(self, sel: SelectStatement) -> Expr
Express a
NOT IN
sub-query expression. Read moreSourceยงfn not_like<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
fn not_like<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
Express a
NOT LIKE
expression. Read moreSourceยงfn right_shift<R>(self, right: R) -> Expr
fn right_shift<R>(self, right: R) -> Expr
Express a bitwise right shift. Read more
Sourceยงimpl<T> PgExpr for Twhere
T: ExprTrait,
impl<T> PgExpr for Twhere
T: ExprTrait,
Sourceยงfn concatenate<T>(self, right: T) -> Expr
fn concatenate<T>(self, right: T) -> Expr
Available on crate feature
backend-postgres
only.Express an postgres concatenate (
||
) expression. Read moreSourceยงfn concat<T>(self, right: T) -> Expr
fn concat<T>(self, right: T) -> Expr
Available on crate feature
backend-postgres
only.Alias of
PgExpr::concatenate
Sourceยงfn matches<T>(self, expr: T) -> Expr
fn matches<T>(self, expr: T) -> Expr
Available on crate feature
backend-postgres
only.Express an postgres fulltext search matches (
@@
) expression. Read moreSourceยงfn contains<T>(self, expr: T) -> Expr
fn contains<T>(self, expr: T) -> Expr
Available on crate feature
backend-postgres
only.Express an postgres fulltext search contains (
@>
) expression. Read moreSourceยงfn contained<T>(self, expr: T) -> Expr
fn contained<T>(self, expr: T) -> Expr
Available on crate feature
backend-postgres
only.Express an postgres fulltext search contained (
<@
) expression. Read moreSourceยงfn ilike<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
fn ilike<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
Available on crate feature
backend-postgres
only.Express a
ILIKE
expression. Read moreSourceยงfn not_ilike<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
fn not_ilike<L>(self, like: L) -> Exprwhere
L: IntoLikeExpr,
Available on crate feature
backend-postgres
only.Express a
NOT ILIKE
expressionSourceยงfn get_json_field<T>(self, right: T) -> Expr
fn get_json_field<T>(self, right: T) -> Expr
Available on crate feature
backend-postgres
only.Express a postgres retrieves JSON field as JSON value (
->
). Read moreSourceยงimpl<T> SqliteExpr for Twhere
T: ExprTrait,
impl<T> SqliteExpr for Twhere
T: ExprTrait,
Sourceยงfn glob<T>(self, right: T) -> Expr
fn glob<T>(self, right: T) -> Expr
Available on crate feature
backend-sqlite
only.Express an sqlite
GLOB
operator. Read moreSourceยงfn matches<T>(self, right: T) -> Expr
fn matches<T>(self, right: T) -> Expr
Available on crate feature
backend-sqlite
only.Express an sqlite
MATCH
operator. Read moreSourceยงfn get_json_field<T>(self, right: T) -> Expr
fn get_json_field<T>(self, right: T) -> Expr
Available on crate feature
backend-sqlite
only.Express an sqlite retrieves JSON field as JSON value (
->
). Read more