- 修复 .Contains('b%') 部分数据库函数参数位置错误;#1826

This commit is contained in:
2881099
2024-06-19 15:10:11 +08:00
parent 6bf4c21af0
commit 20b88248e9
23 changed files with 53 additions and 54 deletions

View File

@ -318,9 +318,9 @@ namespace FreeSql.Dameng
if (args0Value == "NULL") return $"({left}) IS NULL";
if (args0Value.Contains("%"))
{
if (exp.Method.Name == "StartsWith") return $"instr({args0Value}, {left}) = 1";
if (exp.Method.Name == "EndsWith") return $"instr({args0Value}, {left}) = length({args0Value})";
return $"instr({args0Value}, {left}) > 0";
if (exp.Method.Name == "StartsWith") return $"instr({left}, {args0Value}, 1, 1) = 1";
if (exp.Method.Name == "EndsWith") return $"instr({left}, {args0Value}, 1, 1) = length({left})-length({args0Value})+1";
return $"instr({left}, {args0Value}, 1, 1) > 0";
}
if (exp.Method.Name == "StartsWith") return $"({left}) LIKE {(args0Value.EndsWith("'") ? args0Value.Insert(args0Value.Length - 1, "%") : $"(to_char({args0Value})||'%')")}";
if (exp.Method.Name == "EndsWith") return $"({left}) LIKE {(args0Value.StartsWith("'") ? args0Value.Insert(1, "%") : $"('%'||to_char({args0Value}))")}";