func Substring(f qb.Field, from, length interface{}) qb.Field {
	return useOverride(substring, f, from, length)
}
Substring retrieves a part of a string
package qf  
import "git.ultraware.nl/NiseVoid/qb"
func Excluded(f qb.Field) qb.Field {
	return useOverride(nil, f)
}
func Cast(f qb.Field, t qb.DataType) qb.Field {
	return useOverride(cast, f, t)
}
func cast(f qb.Field, t qb.DataType) qb.Field {
	return CalculatedField(func(c *qb.Context) string {
		return qb.ConcatQuery(c, `CAST(`, f, ` AS `, c.Driver.TypeName(t), `)`)
	})
}
func Distinct(f qb.Field) qb.Field {
	return useOverride(distinct, f)
}
func distinct(f qb.Field) qb.Field {
	return NewCalculatedField(`DISTINCT `, f)
}
func CountAll() qb.Field {
	return useOverride(countAll)
}
func countAll() qb.Field {
	return NewCalculatedField(`count(1)`)
}
func Count(f qb.Field) qb.Field {
	return useOverride(count, f)
}
func count(f qb.Field) qb.Field {
	return NewCalculatedField(`count(`, f, `)`)
}
func Sum(f qb.Field) qb.Field {
	return useOverride(sum, f)
}
func sum(f qb.Field) qb.Field {
	return NewCalculatedField(`sum(`, f, `)`)
}
func Average(f qb.Field) qb.Field {
	return useOverride(average, f)
}
func average(f qb.Field) qb.Field {
	return NewCalculatedField(`avg(`, f, `)`)
}
func Min(f qb.Field) qb.Field {
	return useOverride(min, f)
}
func min(f qb.Field) qb.Field {
	return NewCalculatedField(`min(`, f, `)`)
}
func Max(f qb.Field) qb.Field {
	return useOverride(max, f)
}
func max(f qb.Field) qb.Field {
	return NewCalculatedField(`max(`, f, `)`)
}
func Coalesce(f1 qb.Field, i interface{}) qb.Field {
	return useOverride(coalesce, f1, i)
}
func coalesce(f1 qb.Field, i interface{}) qb.Field {
	f2 := qb.MakeField(i)
	return NewCalculatedField(`coalesce(`, f1, `, `, f2, `)`)
}
func Lower(f qb.Field) qb.Field {
	return useOverride(lower, f)
}
func lower(f qb.Field) qb.Field {
	return NewCalculatedField(`lower(`, f, `)`)
}
func Concat(i ...interface{}) qb.Field {
	return useOverride(concat, i...)
}
func concat(i ...interface{}) qb.Field {
	return CalculatedField(func(c *qb.Context) string {
		return qb.JoinQuery(c, ` || `, i)
	})
}
func Replace(f qb.Field, from, to interface{}) qb.Field {
	return useOverride(replace, f, from, to)
}
func replace(f qb.Field, from, to interface{}) qb.Field {
	f1, f2 := qb.MakeField(from), qb.MakeField(to)
	return NewCalculatedField(`replace(`, f, `, `, f1, `, `, f2, `)`)
}