Struct sea_query::func::Func [−][src]
Function call helper.
Implementations
impl Func
[src]
pub fn cust<T: 'static>(func: T) -> Expr where
T: Iden,
[src]
T: Iden,
Call a custom function.
Examples
use sea_query::{*, tests_cfg::*}; struct MyFunction; impl Iden for MyFunction { fn unquoted(&self, s: &mut dyn FmtWrite) { write!(s, "MY_FUNCTION").unwrap(); } } let query = Query::select() .expr(Func::cust(MyFunction).args(vec![Expr::val("hello")])) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT MY_FUNCTION('hello')"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT MY_FUNCTION('hello')"# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT MY_FUNCTION('hello')"# );
pub fn cust_dyn(func: Rc<dyn Iden>) -> Expr
[src]
Dynamic variant of Func::cust
pub fn max<T>(expr: T) -> SimpleExpr where
T: Into<SimpleExpr>,
[src]
T: Into<SimpleExpr>,
Call MAX
function.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .expr(Func::max(Expr::tbl(Char::Table, Char::SizeW))) .from(Char::Table) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT MAX(`character`.`size_w`) FROM `character`"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT MAX("character"."size_w") FROM "character""# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT MAX(`character`.`size_w`) FROM `character`"# );
pub fn min<T>(expr: T) -> SimpleExpr where
T: Into<SimpleExpr>,
[src]
T: Into<SimpleExpr>,
Call MIN
function.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .expr(Func::min(Expr::tbl(Char::Table, Char::SizeH))) .from(Char::Table) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT MIN(`character`.`size_h`) FROM `character`"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT MIN("character"."size_h") FROM "character""# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT MIN(`character`.`size_h`) FROM `character`"# );
pub fn sum<T>(expr: T) -> SimpleExpr where
T: Into<SimpleExpr>,
[src]
T: Into<SimpleExpr>,
Call SUM
function.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .expr(Func::sum(Expr::tbl(Char::Table, Char::SizeH))) .from(Char::Table) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT SUM(`character`.`size_h`) FROM `character`"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT SUM("character"."size_h") FROM "character""# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT SUM(`character`.`size_h`) FROM `character`"# );
pub fn avg<T>(expr: T) -> SimpleExpr where
T: Into<SimpleExpr>,
[src]
T: Into<SimpleExpr>,
Call AVG
function.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .expr(Func::avg(Expr::tbl(Char::Table, Char::SizeH))) .from(Char::Table) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT AVG(`character`.`size_h`) FROM `character`"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT AVG("character"."size_h") FROM "character""# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT AVG(`character`.`size_h`) FROM `character`"# );
pub fn count<T>(expr: T) -> SimpleExpr where
T: Into<SimpleExpr>,
[src]
T: Into<SimpleExpr>,
Call COUNT
function.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .expr(Func::count(Expr::tbl(Char::Table, Char::Id))) .from(Char::Table) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT COUNT(`character`.`id`) FROM `character`"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT COUNT("character"."id") FROM "character""# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT COUNT(`character`.`id`) FROM `character`"# );
pub fn char_length<T>(expr: T) -> SimpleExpr where
T: Into<SimpleExpr>,
[src]
T: Into<SimpleExpr>,
Call CHAR_LENGTH
function.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .expr(Func::char_length(Expr::tbl(Char::Table, Char::Character))) .from(Char::Table) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT CHAR_LENGTH(`character`.`character`) FROM `character`"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT CHAR_LENGTH("character"."character") FROM "character""# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT LENGTH(`character`.`character`) FROM `character`"# );
pub fn if_null<A, B>(a: A, b: B) -> SimpleExpr where
A: Into<SimpleExpr>,
B: Into<SimpleExpr>,
[src]
A: Into<SimpleExpr>,
B: Into<SimpleExpr>,
Call IF NULL
function.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .expr(Func::if_null(Expr::col(Char::SizeW), Expr::col(Char::SizeH))) .from(Char::Table) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT IFNULL(`size_w`, `size_h`) FROM `character`"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT COALESCE("size_w", "size_h") FROM "character""# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT IFNULL(`size_w`, `size_h`) FROM `character`"# );
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Func
impl Send for Func
impl Sync for Func
impl Unpin for Func
impl UnwindSafe for Func
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,