mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-08-01 10:10:16 +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;
|
var parameterNameB = mode.Args[1].MemberName;
|
||||||
return $" CASE WHEN LEFT({parameterNameA}, 1) = {parameterNameB} THEN RIGHT({parameterNameA}, LEN({parameterNameA}) - 1) ELSE {parameterNameA} END ";
|
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 WeekOfYear(MethodCallExpressionModel mode);
|
||||||
string TrimEnd(MethodCallExpressionModel mode);
|
string TrimEnd(MethodCallExpressionModel mode);
|
||||||
string TrimStart(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");
|
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)
|
public static bool Like(string fieldName, string likeValue)
|
||||||
{
|
{
|
||||||
throw new NotSupportedException("Can only be used in expressions");
|
throw new NotSupportedException("Can only be used in expressions");
|
||||||
|
@ -240,5 +240,18 @@ namespace SqlSugar
|
|||||||
var parameterNameB = mode.Args[1].MemberName;
|
var parameterNameB = mode.Args[1].MemberName;
|
||||||
return $" LTRIM({parameterNameA}, {parameterNameB}) ";
|
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;
|
var parameterNameB = mode.Args[1].MemberName;
|
||||||
return $" LTRIM({parameterNameA}, {parameterNameB}) ";
|
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;
|
var parameterNameB = mode.Args[1].MemberName;
|
||||||
return $" CASE WHEN LEFT({parameterNameA}, 1) = {parameterNameB} THEN RIGHT({parameterNameA}, LEN({parameterNameA}) - 1) ELSE {parameterNameA} END ";
|
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;
|
var parameterNameB = mode.Args[1].MemberName;
|
||||||
return $" CASE WHEN SUBSTR({parameterNameA}, 1, 1) ={parameterNameB} THEN SUBSTR({parameterNameA}, 2) ELSE {parameterNameA} END ";
|
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