1 Star 0 Fork 0

h79/goutils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
groupby.go 750 Bytes
一键复制 编辑 原始数据 按行查看 历史
huqiuyun 提交于 2022-12-29 12:51 . sql column
package wrapper
import "strings"
type GroupBy []*Column
func (ob GroupBy) Check(filters []FField) {
length := len(ob)
if length > maxColumns { //防止多
length = maxColumns
}
cols := ob[:length]
for i := range cols {
cols[i].Check(filters)
}
}
func (ob GroupBy) Sql(full bool, convert ColumnConvert) string {
if convert == nil {
convert = defColumnConvert
}
count := 0
builder := strings.Builder{}
for i := range ob {
if count >= maxColumns {
//后面不要接入
break
}
if len(ob[i].Column) == 0 {
continue
}
if count == 0 && full {
builder.WriteString(" GROUP BY ")
}
if count > 0 {
builder.WriteByte(',')
}
builder.WriteString(convert(ob[i].Column))
count++
}
return builder.String()
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/h79/goutils.git
git@gitee.com:h79/goutils.git
h79
goutils
goutils
v1.4.11

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385