mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-07-31 15:56:25 +08:00
Add SqlFunc.Left Right LeftPad
This commit is contained in:
parent
27d8d3cee5
commit
499529188b
@ -1031,5 +1031,25 @@ namespace SqlSugar
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" CASE WHEN LEFT({parameterNameA}, 1) = {parameterNameB} THEN RIGHT({parameterNameA}, LEN({parameterNameA}) - 1) ELSE {parameterNameA} END ";
|
||||
}
|
||||
|
||||
public virtual string Left(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" LEFT({parameterNameA},{parameterNameB}) ";
|
||||
}
|
||||
public virtual string Right(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" RIGHT({parameterNameA},{parameterNameB}) ";
|
||||
}
|
||||
public virtual string PadLeft(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
var parameterNameC = mode.Args[2].MemberName;
|
||||
return $" LPAD({parameterNameA},{parameterNameB},{parameterNameC}) ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -116,5 +116,8 @@ namespace SqlSugar
|
||||
string WeekOfYear(MethodCallExpressionModel mode);
|
||||
string TrimEnd(MethodCallExpressionModel mode);
|
||||
string TrimStart(MethodCallExpressionModel mode);
|
||||
string Left(MethodCallExpressionModel mode);
|
||||
string Right(MethodCallExpressionModel mode);
|
||||
string PadLeft(MethodCallExpressionModel mode);
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,18 @@ namespace SqlSugar
|
||||
{
|
||||
throw new NotSupportedException("Can only be used in expressions");
|
||||
}
|
||||
public static string Left(string value,int number)
|
||||
{
|
||||
throw new NotSupportedException("Can only be used in expressions");
|
||||
}
|
||||
public static string Right(string value,int number)
|
||||
{
|
||||
throw new NotSupportedException("Can only be used in expressions");
|
||||
}
|
||||
public static string PadLeft(string value,int number, char padChar)
|
||||
{
|
||||
throw new NotSupportedException("Can only be used in expressions");
|
||||
}
|
||||
public static bool Like(string fieldName, string likeValue)
|
||||
{
|
||||
throw new NotSupportedException("Can only be used in expressions");
|
||||
|
@ -240,5 +240,18 @@ namespace SqlSugar
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" LTRIM({parameterNameA}, {parameterNameB}) ";
|
||||
}
|
||||
|
||||
public override string Left(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" SUBSTR({parameterNameA}, 1, {parameterNameB}) ";
|
||||
}
|
||||
public override string Right(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" SUBSTR({parameterNameA}, -2, {parameterNameB}) ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -366,5 +366,17 @@ namespace SqlSugar
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" LTRIM({parameterNameA}, {parameterNameB}) ";
|
||||
}
|
||||
public override string Left(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" SUBSTR({parameterNameA}, 1, {parameterNameB}) ";
|
||||
}
|
||||
public override string Right(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" SUBSTR({parameterNameA}, -2, {parameterNameB}) ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -122,6 +122,14 @@ namespace SqlSugar
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" CASE WHEN LEFT({parameterNameA}, 1) = {parameterNameB} THEN RIGHT({parameterNameA}, LEN({parameterNameA}) - 1) ELSE {parameterNameA} END ";
|
||||
}
|
||||
|
||||
public override string PadLeft(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
var parameterNameC = mode.Args[2].MemberName;
|
||||
return $" CONCAT(REPLICATE({parameterNameC}, {parameterNameB} - LEN({parameterNameA})), {parameterNameA}) ";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -297,5 +297,27 @@ namespace SqlSugar
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" CASE WHEN SUBSTR({parameterNameA}, 1, 1) ={parameterNameB} THEN SUBSTR({parameterNameA}, 2) ELSE {parameterNameA} END ";
|
||||
}
|
||||
|
||||
public override string PadLeft(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
var parameterNameC = mode.Args[2].MemberName;
|
||||
var value = new string[mode.Args[1].MemberValue.ObjToInt()].Select(it=> parameterNameC);
|
||||
return $"substr({string.Join("||", value)} || {parameterNameA}, {parameterNameB}*-1) ";
|
||||
}
|
||||
|
||||
public override string Left(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" SUBSTR({parameterNameA}, 1, {parameterNameB}) ";
|
||||
}
|
||||
public override string Right(MethodCallExpressionModel mode)
|
||||
{
|
||||
var parameterNameA = mode.Args[0].MemberName;
|
||||
var parameterNameB = mode.Args[1].MemberName;
|
||||
return $" SUBSTR({parameterNameA}, -2, {parameterNameB}) ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user