!384 fix: 解决case when then别名丢失的问题

Merge pull request !384 from 丿风轻灬云淡/main
This commit is contained in:
Michael Yang 2023-11-20 02:50:26 +00:00 committed by Gitee
commit 168ef02b27
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 7 additions and 7 deletions

View File

@ -68,10 +68,10 @@ public class CaseQueryColumn extends QueryColumn implements HasParamsColumn {
StringBuilder sql = new StringBuilder(SqlConsts.CASE);
for (When when : whens) {
sql.append(SqlConsts.WHEN).append(when.whenCondition.toSql(queryTables, dialect));
sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(when.thenValue));
sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(queryTables, when.thenValue));
}
if (elseValue != null) {
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(elseValue));
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(queryTables, elseValue));
}
sql.append(SqlConsts.END);
return sql.toString();

View File

@ -46,11 +46,11 @@ public class CaseSearchQueryColumn extends QueryColumn implements HasParamsColum
StringBuilder sql = new StringBuilder(SqlConsts.CASE);
sql.append(SqlConsts.BLANK).append(queryColumn.toSelectSql(queryTables, dialect));
for (When when : whens) {
sql.append(SqlConsts.WHEN).append(WrapperUtil.buildValue(when.searchValue));
sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(when.thenValue));
sql.append(SqlConsts.WHEN).append(WrapperUtil.buildValue(queryTables, when.searchValue));
sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(queryTables, when.thenValue));
}
if (elseValue != null) {
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(elseValue));
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(queryTables, elseValue));
}
sql.append(SqlConsts.END);
return sql.toString();

View File

@ -130,13 +130,13 @@ class WrapperUtil {
}
static String buildValue(Object value) {
static String buildValue(List<QueryTable> queryTables, Object value) {
if (value instanceof Number || value instanceof Boolean) {
return String.valueOf(value);
} else if (value instanceof RawQueryCondition) {
return ((RawQueryCondition) value).getContent();
} else if (value instanceof QueryColumn) {
return ((QueryColumn) value).toConditionSql(null, DialectFactory.getDialect());
return ((QueryColumn) value).toConditionSql(queryTables, DialectFactory.getDialect());
} else {
return SqlConsts.SINGLE_QUOTE + value + SqlConsts.SINGLE_QUOTE;
}