!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); StringBuilder sql = new StringBuilder(SqlConsts.CASE);
for (When when : whens) { for (When when : whens) {
sql.append(SqlConsts.WHEN).append(when.whenCondition.toSql(queryTables, dialect)); 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) { if (elseValue != null) {
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(elseValue)); sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(queryTables, elseValue));
} }
sql.append(SqlConsts.END); sql.append(SqlConsts.END);
return sql.toString(); return sql.toString();

View File

@ -46,11 +46,11 @@ public class CaseSearchQueryColumn extends QueryColumn implements HasParamsColum
StringBuilder sql = new StringBuilder(SqlConsts.CASE); StringBuilder sql = new StringBuilder(SqlConsts.CASE);
sql.append(SqlConsts.BLANK).append(queryColumn.toSelectSql(queryTables, dialect)); sql.append(SqlConsts.BLANK).append(queryColumn.toSelectSql(queryTables, dialect));
for (When when : whens) { for (When when : whens) {
sql.append(SqlConsts.WHEN).append(WrapperUtil.buildValue(when.searchValue)); sql.append(SqlConsts.WHEN).append(WrapperUtil.buildValue(queryTables, when.searchValue));
sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(when.thenValue)); sql.append(SqlConsts.THEN).append(WrapperUtil.buildValue(queryTables, when.thenValue));
} }
if (elseValue != null) { if (elseValue != null) {
sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(elseValue)); sql.append(SqlConsts.ELSE).append(WrapperUtil.buildValue(queryTables, elseValue));
} }
sql.append(SqlConsts.END); sql.append(SqlConsts.END);
return sql.toString(); 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) { if (value instanceof Number || value instanceof Boolean) {
return String.valueOf(value); return String.valueOf(value);
} else if (value instanceof RawQueryCondition) { } else if (value instanceof RawQueryCondition) {
return ((RawQueryCondition) value).getContent(); return ((RawQueryCondition) value).getContent();
} else if (value instanceof QueryColumn) { } else if (value instanceof QueryColumn) {
return ((QueryColumn) value).toConditionSql(null, DialectFactory.getDialect()); return ((QueryColumn) value).toConditionSql(queryTables, DialectFactory.getDialect());
} else { } else {
return SqlConsts.SINGLE_QUOTE + value + SqlConsts.SINGLE_QUOTE; return SqlConsts.SINGLE_QUOTE + value + SqlConsts.SINGLE_QUOTE;
} }