mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-09-18 17:48:11 +08:00
-
This commit is contained in:
@@ -122,14 +122,17 @@ namespace OrmTest.Demo
|
||||
var list2 = db.Queryable<Student>()
|
||||
.GroupBy(it => new { it.Id, it.Name }).Having(it => SqlFunc.AggregateAvg(it.Id) > 0)
|
||||
.Select(it => new { idAvg = SqlFunc.AggregateAvg(it.Id), name = it.Name }).ToList();
|
||||
//SQL:
|
||||
//SELECT AVG([Id]) AS[idAvg], [Name] AS[name] FROM[Student] GROUP BY[Name],[Id] HAVING(AVG([Id]) > 0 )
|
||||
|
||||
// group id,name take first
|
||||
var list3 = db.Queryable<Student>()
|
||||
.PartitionBy(it => new { it.Id, it.Name }).Take(1).ToList();
|
||||
|
||||
int count = 0;
|
||||
|
||||
//SQL:
|
||||
//SELECT AVG([Id]) AS[idAvg], [Name] AS[name] FROM[Student] GROUP BY[Name],[Id] HAVING(AVG([Id]) > 0 )
|
||||
var list4 = db.Queryable<Student>()
|
||||
.PartitionBy(it => new { it.Id, it.Name }).Take(1).ToPageList(2,3,ref count);
|
||||
|
||||
//SqlFunc.AggregateSum(object thisValue)
|
||||
//SqlFunc.AggregateAvg<TResult>(TResult thisValue)
|
||||
|
@@ -470,8 +470,11 @@ namespace SqlSugar
|
||||
QueryBuilder.ExternalPageIndex = pageIndex;
|
||||
QueryBuilder.ExternalPageSize = pageSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
QueryBuilder.Skip = (pageIndex - 1) * pageSize;
|
||||
QueryBuilder.Take = pageSize;
|
||||
}
|
||||
return ToDataTable();
|
||||
}
|
||||
public virtual DataTable ToDataTablePage(int pageIndex, int pageSize, ref int totalNumber)
|
||||
@@ -493,8 +496,11 @@ namespace SqlSugar
|
||||
QueryBuilder.ExternalPageIndex = pageIndex;
|
||||
QueryBuilder.ExternalPageSize = pageSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
QueryBuilder.Skip = (pageIndex - 1) * pageSize;
|
||||
QueryBuilder.Take = pageSize;
|
||||
}
|
||||
return ToList();
|
||||
}
|
||||
public virtual List<T> ToPageList(int pageIndex, int pageSize, ref int totalNumber)
|
||||
|
@@ -241,8 +241,11 @@ namespace SqlSugar
|
||||
sql.AppendFormat(SqlTemplate, GetSelectValue, GetTableNameString, GetWhereValueString, GetGroupByString + HavingInfos, (!isRowNumber && this.OrderByValue.IsValuable()) ? GetOrderByString : null);
|
||||
sql.Replace("{$:OrderByString:$}", isRowNumber ? (this.IsCount ? null : rowNumberString) : null);
|
||||
if (IsCount) { return sql.ToString(); }
|
||||
return ToPageSql(sql.ToString(),this.Take,this.Skip);
|
||||
|
||||
var result= ToPageSql(sql.ToString(),this.Take,this.Skip);
|
||||
if (ExternalPageIndex > 0) {
|
||||
result = ToPageSql(result,(ExternalPageIndex-1)*ExternalPageSize,ExternalPageSize);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
protected virtual string ToPageSql(string sql,int? take,int? skip)
|
||||
|
Reference in New Issue
Block a user