Synchronization code

This commit is contained in:
sunkaixuan
2023-07-09 14:07:15 +08:00
parent fe61d5f9cc
commit 8d97ec4b49
2 changed files with 42 additions and 2 deletions

View File

@@ -23,22 +23,42 @@ namespace SqlSugar
} }
public virtual string RowCount(MethodCallExpressionModel model) public virtual string RowCount(MethodCallExpressionModel model)
{ {
return "count(1) over()"; if (model.Args.Count > 1)
{
return $"COUNT({model.Args[0].MemberName}) over( partition by {model.Args[2].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')} order by {model.Args[1].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')})";
}
return "COUNT(1) over()";
} }
public string RowSum(MethodCallExpressionModel model) public string RowSum(MethodCallExpressionModel model)
{ {
return "SUM(" + model.Args[0].MemberName +") over()"; if (model.Args.Count > 1)
{
return $"SUM({model.Args[0].MemberName}) over( partition by {model.Args[2].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')} order by {model.Args[1].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')})";
}
return "SUM(" + model.Args[0].MemberName +") over()";
} }
public string RowAvg(MethodCallExpressionModel model) public string RowAvg(MethodCallExpressionModel model)
{ {
if (model.Args.Count > 1)
{
return $"AVG({model.Args[0].MemberName}) over( partition by {model.Args[2].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')} order by {model.Args[1].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')})";
}
return "AVG(" + model.Args[0].MemberName + ") over()"; return "AVG(" + model.Args[0].MemberName + ") over()";
} }
public string RowMin(MethodCallExpressionModel model) public string RowMin(MethodCallExpressionModel model)
{ {
if (model.Args.Count > 1)
{
return $"Min({model.Args[0].MemberName}) over( partition by {model.Args[2].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')} order by {model.Args[1].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')})";
}
return "Min(" + model.Args[0].MemberName + ") over()"; return "Min(" + model.Args[0].MemberName + ") over()";
} }
public string RowMax(MethodCallExpressionModel model) public string RowMax(MethodCallExpressionModel model)
{ {
if (model.Args.Count > 1)
{
return $"Max({model.Args[0].MemberName}) over( partition by {model.Args[2].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')} order by {model.Args[1].MemberName.ObjToString().TrimEnd('\'').TrimStart('\'')})";
}
return "Max(" + model.Args[0].MemberName + ") over()"; return "Max(" + model.Args[0].MemberName + ") over()";
} }
public virtual string IIF(MethodCallExpressionModel model) public virtual string IIF(MethodCallExpressionModel model)

View File

@@ -37,6 +37,10 @@ namespace SqlSugar
{ {
throw new NotSupportedException("Can only be used in expressions"); throw new NotSupportedException("Can only be used in expressions");
} }
public static int RowCount(object countFiledName,object orderByField, object partitionBy)
{
throw new NotSupportedException("Can only be used in expressions");
}
public static int RowCount() public static int RowCount()
{ {
throw new NotSupportedException("Can only be used in expressions"); throw new NotSupportedException("Can only be used in expressions");
@@ -45,18 +49,34 @@ namespace SqlSugar
{ {
throw new NotSupportedException("Can only be used in expressions"); throw new NotSupportedException("Can only be used in expressions");
} }
public static TRestult RowSum<TRestult>(TRestult filedName, object orderByField, object partitionBy)
{
throw new NotSupportedException("Can only be used in expressions");
}
public static TRestult RowMax<TRestult>(TRestult filedName) public static TRestult RowMax<TRestult>(TRestult filedName)
{ {
throw new NotSupportedException("Can only be used in expressions"); throw new NotSupportedException("Can only be used in expressions");
} }
public static TRestult RowMax<TRestult>(TRestult filedNameobject,object orderByField, object partitionBy)
{
throw new NotSupportedException("Can only be used in expressions");
}
public static TRestult RowMin<TRestult>(TRestult filedName) public static TRestult RowMin<TRestult>(TRestult filedName)
{ {
throw new NotSupportedException("Can only be used in expressions"); throw new NotSupportedException("Can only be used in expressions");
} }
public static TRestult RowMin<TRestult>(TRestult filedName, object orderByField, object partitionBy)
{
throw new NotSupportedException("Can only be used in expressions");
}
public static TRestult RowAvg<TRestult>(TRestult filedName) public static TRestult RowAvg<TRestult>(TRestult filedName)
{ {
throw new NotSupportedException("Can only be used in expressions"); throw new NotSupportedException("Can only be used in expressions");
} }
public static TRestult RowAvg<TRestult>(TRestult filedName, object orderByField, object partitionBy)
{
throw new NotSupportedException("Can only be used in expressions");
}
public static string JsonField(object json,string fieldName) public static string JsonField(object json,string fieldName)
{ {
throw new NotSupportedException("Can only be used in expressions"); throw new NotSupportedException("Can only be used in expressions");