From cc1f5069f8fb140b599a03dbb9dea5740a07b989 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Wed, 1 Apr 2020 13:52:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20SqlServer=20charindex=20?= =?UTF-8?q?=E8=A1=A8=E8=BE=BE=E5=BC=8F=E5=87=BD=E6=95=B0=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E7=9A=84=E9=94=99=E8=AF=AF=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Providers/FreeSql.Provider.Odbc/Default/OdbcAdapter.cs | 2 +- .../SqlServer/OdbcSqlServerExpression.cs | 4 ++-- Providers/FreeSql.Provider.SqlServer/SqlServerExpression.cs | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Providers/FreeSql.Provider.Odbc/Default/OdbcAdapter.cs b/Providers/FreeSql.Provider.Odbc/Default/OdbcAdapter.cs index a1dd0314..745091fe 100644 --- a/Providers/FreeSql.Provider.Odbc/Default/OdbcAdapter.cs +++ b/Providers/FreeSql.Provider.Odbc/Default/OdbcAdapter.cs @@ -105,7 +105,7 @@ namespace FreeSql.Odbc.Default public virtual string LambdaString_ToLower(string operand) => $"lower({operand})"; public virtual string LambdaString_ToUpper(string operand) => $"upper({operand})"; public virtual string LambdaString_Substring(string operand, string startIndex, string length) => string.IsNullOrEmpty(length) ? $"left({operand}, {startIndex})" : $"substring({operand}, {startIndex}, {length})"; - public virtual string LambdaString_IndexOf(string operand, string value, string startIndex) => string.IsNullOrEmpty(startIndex) ? $"(charindex({operand}, {value})-1)" : $"(charindex({operand}, {value}, {startIndex})-1)"; + public virtual string LambdaString_IndexOf(string operand, string value, string startIndex) => string.IsNullOrEmpty(startIndex) ? $"(charindex({value}, {operand})-1)" : $"(charindex({value}, {operand}, {startIndex})-1)"; public virtual string LambdaString_PadLeft(string operand, string length, string paddingChar) => string.IsNullOrEmpty(paddingChar) ? $"lpad({operand}, {length})" : $"lpad({operand}, {length}, {paddingChar})"; public virtual string LambdaString_PadRight(string operand, string length, string paddingChar) => string.IsNullOrEmpty(paddingChar) ? $"rpad({operand}, {length})" : $"rpad({operand}, {length}, {paddingChar})"; public virtual string LambdaString_Trim(string operand) => $"ltrim(rtrim({operand}))"; diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerExpression.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerExpression.cs index dcbdfec7..280a6181 100644 --- a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerExpression.cs +++ b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerExpression.cs @@ -282,9 +282,9 @@ namespace FreeSql.Odbc.SqlServer var locateArgs1 = getExp(exp.Arguments[1]); if (long.TryParse(locateArgs1, out var testtrylng2)) locateArgs1 = (testtrylng2 + 1).ToString(); else locateArgs1 += "+1"; - return $"(charindex({left}, {indexOfFindStr}, {locateArgs1})-1)"; + return $"(charindex({indexOfFindStr}, {left}, {locateArgs1})-1)"; } - return $"(charindex({left}, {indexOfFindStr})-1)"; + return $"(charindex({indexOfFindStr}, {left})-1)"; case "PadLeft": if (exp.Arguments.Count == 1) return $"lpad({left}, {getExp(exp.Arguments[0])})"; return $"lpad({left}, {getExp(exp.Arguments[0])}, {getExp(exp.Arguments[1])})"; diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerExpression.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerExpression.cs index 8aba97e0..4abd09ac 100644 --- a/Providers/FreeSql.Provider.SqlServer/SqlServerExpression.cs +++ b/Providers/FreeSql.Provider.SqlServer/SqlServerExpression.cs @@ -282,9 +282,9 @@ namespace FreeSql.SqlServer var locateArgs1 = getExp(exp.Arguments[1]); if (long.TryParse(locateArgs1, out var testtrylng2)) locateArgs1 = (testtrylng2 + 1).ToString(); else locateArgs1 += "+1"; - return $"(charindex({left}, {indexOfFindStr}, {locateArgs1})-1)"; + return $"(charindex({indexOfFindStr}, {left}, {locateArgs1})-1)"; } - return $"(charindex({left}, {indexOfFindStr})-1)"; + return $"(charindex({indexOfFindStr}, {left})-1)"; case "PadLeft": if (exp.Arguments.Count == 1) return $"lpad({left}, {getExp(exp.Arguments[0])})"; return $"lpad({left}, {getExp(exp.Arguments[0])}, {getExp(exp.Arguments[1])})";