#1021 fix sqlite padleft padright

This commit is contained in:
igeekfan
2022-04-16 17:37:19 +08:00
parent 8c022b3e0a
commit 1b7dd3024f
2 changed files with 78 additions and 4 deletions

View File

@ -317,11 +317,12 @@ namespace FreeSql.Sqlite
//}
return $"(instr({left}, {indexOfFindStr})-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])})";
if (exp.Arguments.Count == 1) return $"padl({left}, {getExp(exp.Arguments[0])})";
return $"leftstr(REPLACE(padl({left}, {getExp(exp.Arguments[0])}),' ',{getExp(exp.Arguments[1])}),{getExp(exp.Arguments[0])}-length({left}))||{left}";
case "PadRight":
if (exp.Arguments.Count == 1) return $"rpad({left}, {getExp(exp.Arguments[0])})";
return $"rpad({left}, {getExp(exp.Arguments[0])}, {getExp(exp.Arguments[1])})";
var totalWidthValue = getExp(exp.Arguments[0]);
if (exp.Arguments.Count == 1) return $"padr({left}, {totalWidthValue})";
return $"{left}||rightstr(REPLACE(padr({left},{totalWidthValue}),' ',{getExp(exp.Arguments[1])}),CASE WHEN {totalWidthValue}-length({left})<=0 THEN 0 ELSE {totalWidthValue}-length({left})END)";
case "Trim":
case "TrimStart":
case "TrimEnd":