Added functions SelectExprs, MaxExpr, MinExp

This commit is contained in:
Daniel Hammerschmid 2022-07-25 16:50:45 +02:00 committed by Dominik Böhm
parent 2c94bb4e0a
commit 9235aea183

View File

@ -271,9 +271,9 @@ func (e *expr) SumExpr() *expr {
return e
}
func (e *expr) ReplaceExpr(search string,replace string) *expr {
func (e *expr) ReplaceExpr(search string, replace string) *expr {
e.expr = "REPLACE(" + e.expr + ",?,?)"
e.args = append(e.args, search, replace)
e.args = append(e.args, search, replace)
return e
}
@ -434,10 +434,20 @@ func (e *expr) Max() string {
return "MAX(" + e.expr + ")"
}
func (e *expr) MaxExpr() *expr {
e.expr = "MAX(" + e.expr + ")"
return e
}
func (e *expr) Min() string {
return "MIN(" + e.expr + ")"
}
func (e *expr) MinExpr() *expr {
e.expr = "MIN(" + e.expr + ")"
return e
}
func (e *expr) LowerExpr() *expr {
e.expr = "LOWER(" + e.expr + ")"
return e
@ -583,6 +593,18 @@ func (db *DB) SelectFields(fields ...string) *DB {
return db.clone().Select(selects)
}
func (db *DB) SelectExprs(fields ...interface{}) *DB {
e := &expr{}
for i, field := range fields {
if i != 0 {
e.expr += ", "
}
addStatementToExpression(e, field)
}
return db.clone().Select(e.expr, e.args...)
}
func (e *expr) Intersect(e2 *expr) *expr {
e.expr = "((" + e.expr + ") INTERSECT (" + e2.expr + "))"
e.args = append(e.args, e2.args...)