Select a,b,c from d where d.id in (select id from (select id from e))
以上是我想使用方解码解析的示例查询。
答案 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
接口来使用访问者模式。