我有一个非常复杂的查询,包含多个子句,例如"group by"、"order by"、子查询等。是否有任何Hive SQL解析器可以用来捕获查询中的这些标记?我找不到任何适当的库来实现这一点。感谢您的建议!
from sqlglot import parse_one, exp
for gb in parse_one("SELECT foo, count(bar) FROM baz GROUP BY foo").find_all(exp.Group):
print(gb)
打印
按照 foo 分组
parse_one("select ff from db.tb").find_all(exp.From)
将返回一个对象生成器。它们的类型为sqlglot.expressions.Table,并且如果指定了数据库,则它们包含数据库。for from_clause in parse_one("select ff from db.tb").find_all(exp.From): print(from_clause)
- Walt ElderFROM db.tb