mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-01 10:10:16 +08:00
Add SqlFunc.RowNumber & SqlFunc.RowCount
This commit is contained in:
parent
4fc25dcfeb
commit
01c0c54e03
@ -8,6 +8,21 @@ namespace SqlSugar
|
||||
{
|
||||
public partial class DefaultDbMethod : IDbMethods
|
||||
{
|
||||
public virtual string RowNumber(MethodCallExpressionModel model)
|
||||
{
|
||||
if (model.Args.Count == 1)
|
||||
{
|
||||
return $"row_number() over(order by {model.Args[0].MemberName})";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $"row_number() over( partition by {model.Args[1].MemberName} order by {model.Args[0].MemberName})";
|
||||
}
|
||||
}
|
||||
public virtual string RowCount(MethodCallExpressionModel model)
|
||||
{
|
||||
return "count(1) over()";
|
||||
}
|
||||
public virtual string IIF(MethodCallExpressionModel model)
|
||||
{
|
||||
var parameter = model.Args[0];
|
||||
|
@ -87,6 +87,9 @@ namespace SqlSugar
|
||||
string Asc(MethodCallExpressionModel model);
|
||||
string Desc(MethodCallExpressionModel model);
|
||||
string Stuff(MethodCallExpressionModel model);
|
||||
string RowNumber(MethodCallExpressionModel model);
|
||||
string RowCount(MethodCallExpressionModel model);
|
||||
|
||||
string GetDateString(string dateValue,string format);
|
||||
string GetForXmlPath();
|
||||
}
|
||||
|
@ -9,6 +9,18 @@ namespace SqlSugar
|
||||
{
|
||||
public partial class SqlFunc
|
||||
{
|
||||
public static int RowNumber(object orderByField, object partitionBy)
|
||||
{
|
||||
throw new NotSupportedException("Can only be used in expressions");
|
||||
}
|
||||
public static int RowNumber(object orderByField)
|
||||
{
|
||||
throw new NotSupportedException("Can only be used in expressions");
|
||||
}
|
||||
public static int RowCount()
|
||||
{
|
||||
throw new NotSupportedException("Can only be used in expressions");
|
||||
}
|
||||
public static T Desc<T>(T value)
|
||||
{
|
||||
throw new NotSupportedException("Can only be used in expressions");
|
||||
|
@ -1010,6 +1010,10 @@ namespace SqlSugar
|
||||
return this.Context.DbMehtods.Desc(model);
|
||||
case "Stuff":
|
||||
return this.Context.DbMehtods.Stuff(model);
|
||||
case "RowNumber":
|
||||
return this.Context.DbMehtods.RowNumber(model);
|
||||
case "RowCount":
|
||||
return this.Context.DbMehtods.RowCount(model);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user