0
Select a,b,c from d where d.id in (select id from (select id from e)) 

以上是我想使用方解石解析的示例查询。

4

1 回答 1

1
String query = "Select a,b,c from d where d.id in (select id from (select id from e))";

try {
    SqlParser parser = SqlParser.create(query);
    SqlNode sqlNode = parser.parseQuery();

    sqlNode.accept(new SqlAnalyzer());

} catch (SqlParseException e) {
    e.printStackTrace();
}

使用上面的代码,您可以使用 Calcite 解析 SQL 查询,您将获得解析树。为了实际使用树,您需要通过实现org.apache.calcite.sql.util.SqlVisitor接口来使用访问者模式。

于 2018-06-01T03:35:51.453 回答