diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/dbtbl_with_masterslave/select_with_case_expression.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/dbtbl_with_masterslave/select_with_case_expression.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a198cbbffb6d9c018aaec2ce155ed24b01aa3e05
--- /dev/null
+++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/dbtbl_with_masterslave/select_with_case_expression.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/masterslave/select_with_case_expression.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/masterslave/select_with_case_expression.xml
new file mode 100644
index 0000000000000000000000000000000000000000..03629b9ae26f319d962a61b480d223a58fb42a0c
--- /dev/null
+++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/masterslave/select_with_case_expression.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/shadow/select_with_case_expression.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/shadow/select_with_case_expression.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a3c457e1814985039da7ba221aeca00b22bccc8a
--- /dev/null
+++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/shadow/select_with_case_expression.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/tbl/select_with_case_expression.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/tbl/select_with_case_expression.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ecee55b061640306a445eb8ab47928626966015d
--- /dev/null
+++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dataset/tbl/select_with_case_expression.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dql-integrate-test-cases.xml b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dql-integrate-test-cases.xml
index 6b4bdf48de8176de64d7d22396b0fe8b1789de47..bbf267e857435f1b5cb36aff37a63204b993bbeb 100644
--- a/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dql-integrate-test-cases.xml
+++ b/sharding-integration-test/sharding-jdbc-test/src/test/resources/integrate/cases/dql/dql-integrate-test-cases.xml
@@ -512,4 +512,8 @@
+
+
+
+
diff --git a/sharding-sql-test/src/main/resources/sql/supported/dml/select-expression.xml b/sharding-sql-test/src/main/resources/sql/supported/dml/select-expression.xml
index bbeb14451201c5adf3f4c78846f38aaf68c0871e..b9ffd0e66df733062e6833950aee20a230834827 100644
--- a/sharding-sql-test/src/main/resources/sql/supported/dml/select-expression.xml
+++ b/sharding-sql-test/src/main/resources/sql/supported/dml/select-expression.xml
@@ -20,4 +20,6 @@
+
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java
index 60d076fd425a1a89c56c1d1722711c4182acf85f..d12a01a642ea5e3e2f77b2ee5f375a9797da33c4 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/MySQLVisitor.java
@@ -582,7 +582,7 @@ public abstract class MySQLVisitor extends MySQLStatementBaseVisitor {
@Override
public final ASTNode visitCaseExpression(final CaseExpressionContext ctx) {
- return visit(ctx.simpleExpr());
+ return new OtherLiteralValue(ctx.getText());
}
@Override
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/dml/select-expression.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/dml/select-expression.xml
index 78581dad365bebd1d91f34fd9e9ee05309dcbcbc..2ce813f2cf7029a5d594b8bf53a787c5b911881d 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/dml/select-expression.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/test/resources/sql/dml/select-expression.xml
@@ -73,4 +73,35 @@
+