From 9235aea183be15d9712594aa3879b340ef966b27 Mon Sep 17 00:00:00 2001 From: Daniel Hammerschmid Date: Mon, 25 Jul 2022 16:50:45 +0200 Subject: [PATCH] Added functions SelectExprs, MaxExpr, MinExp --- expression_ext.go | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/expression_ext.go b/expression_ext.go index 1763f3a8..b6f6992e 100644 --- a/expression_ext.go +++ b/expression_ext.go @@ -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...)