如何使用方解码解析嵌套的SQL语句?

时间:2017-08-16 08:44:45

标签: apache-calcite

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

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

1 个答案:

答案 0 :(得分: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接口来使用访问者模式。