more refactor
This commit is contained in:
parent
4e3ac37291
commit
ee2b5ef320
|
@ -297,16 +297,19 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB
|
|||
}
|
||||
}
|
||||
|
||||
var groupStr string
|
||||
if len(statement.GroupByStr) > 0 {
|
||||
groupStr = fmt.Sprintf(" GROUP BY %s", statement.GroupByStr)
|
||||
}
|
||||
|
||||
if _, err := fmt.Fprintf(mssqlCondi, "(%s NOT IN (SELECT TOP %d %s%s%s%s%s))",
|
||||
column, statement.Start, column, fromStr, whereStr, orderByWriter.String(), groupStr); err != nil {
|
||||
if _, err := fmt.Fprintf(mssqlCondi, "(%s NOT IN (SELECT TOP %d %s%s%s%s",
|
||||
column, statement.Start, column, fromStr, whereStr, orderByWriter.String()); err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
mssqlCondi.Append(orderByWriter.Args()...)
|
||||
|
||||
if err := statement.WriteGroupBy(mssqlCondi); err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
||||
if _, err := fmt.Fprint(mssqlCondi, "))"); err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -322,8 +325,8 @@ func (statement *Statement) genSelectSQL(columnStr string, needLimit, needOrderB
|
|||
buf.Append(mssqlCondi.Args()...)
|
||||
}
|
||||
|
||||
if statement.GroupByStr != "" {
|
||||
fmt.Fprint(buf, " GROUP BY ", statement.GroupByStr)
|
||||
if err := statement.WriteGroupBy(buf); err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
if statement.HavingStr != "" {
|
||||
fmt.Fprint(buf, " ", statement.HavingStr)
|
||||
|
|
|
@ -598,6 +598,14 @@ func (statement *Statement) GroupBy(keys string) *Statement {
|
|||
return statement
|
||||
}
|
||||
|
||||
func (statement *Statement) WriteGroupBy(w builder.Writer) error {
|
||||
if len(statement.GroupByStr) > 0 {
|
||||
_, err := fmt.Fprintf(w, " GROUP BY %s", statement.GroupByStr)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Having generate "Having conditions" statement
|
||||
func (statement *Statement) Having(conditions string) *Statement {
|
||||
statement.HavingStr = fmt.Sprintf("HAVING %v", statement.ReplaceQuote(conditions))
|
||||
|
|
Loading…
Reference in New Issue