From 05179c03cd9cd59771e33e48ec3543154f1d7c30 Mon Sep 17 00:00:00 2001 From: myhdl Date: Wed, 21 Jan 2026 15:38:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9SqlFunc.Right=20=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E9=95=BF=E5=BA=A6=E4=B8=8D=E4=B8=BA2=E5=88=99?= =?UTF-8?q?=E4=BC=9A=E5=BC=82=E5=B8=B8=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SqlSugar/Realization/Dm/SqlBuilder/DmExpressionContext.cs | 3 ++- .../Realization/Oracle/SqlBuilder/OracleExpressionContext.cs | 2 +- .../Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Dm/SqlBuilder/DmExpressionContext.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Dm/SqlBuilder/DmExpressionContext.cs index 8e82144fb..95994b886 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Dm/SqlBuilder/DmExpressionContext.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Dm/SqlBuilder/DmExpressionContext.cs @@ -310,11 +310,12 @@ namespace SqlSugar 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}) "; + return $" SUBSTR({parameterNameA}, -{parameterNameB}, {parameterNameB}) "; //hdl 20260121 } public override string Ceil(MethodCallExpressionModel mode) diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs index e4d1d3390..af87f010c 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Oracle/SqlBuilder/OracleExpressionContext.cs @@ -435,7 +435,7 @@ namespace SqlSugar { var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; - return $" SUBSTR({parameterNameA}, (LENGTH({parameterNameA})-2), {parameterNameB}) "; + return $" SUBSTR({parameterNameA}, -{parameterNameB}, {parameterNameB}) "; //hdl 20260121 } public override string Ceil(MethodCallExpressionModel mode) diff --git a/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs b/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs index f6c6c5e7d..b0f0ea856 100644 --- a/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs +++ b/Src/Asp.NetCore2/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteExpressionContext.cs @@ -362,7 +362,7 @@ namespace SqlSugar { var parameterNameA = mode.Args[0].MemberName; var parameterNameB = mode.Args[1].MemberName; - return $" SUBSTR({parameterNameA}, -2, {parameterNameB}) "; + return $" SUBSTR({parameterNameA}, -{parameterNameB}, {parameterNameB}) "; //修改 20260121 } public override string NewUid(MethodCallExpressionModel mode)