gpt4 book ai didi

java - Apache Calcite 在 SQL 字符串中查找选定的列

转载 作者:行者123 更新时间:2023-11-29 07:29:46 26 4
gpt4 key购买 nike

我有一个用例,我想知道在 SQL 字符串中选择的列。例如,如果 SQL 是这样的:
SELECT name, age*5 as intelligence FROM bla WHERE bla=bla
然后,在解析上面的字符串后,我只想输出:name, intelligence.
首先,是否可以通过方解石?
也欢迎任何其他选择。

PS:我想在实际运行数据库查询之前了解这一点。

最佳答案

使用 Calcite 绝对可行。您首先要创建 SqlParser 实例并解析查询:

SqlParser parser = SqlParser.create(query)
SqlNode parsed = parser.parseQuery()

从那里开始,您可能会最成功地实现 SqlVisitor界面。您需要首先找到一个 SqlSelect 实例,然后通过调用 getSelectList 的每个元素上的 visit 来访问每个被选择的表达式。 .

从那里开始,您如何继续将取决于您要支持的表达式的复杂性。但是,递归访问所有 SqlCall 节点及其操作数,然后收集您看到的任何 SqlIdentifier 值可能就足够了。

关于java - Apache Calcite 在 SQL 字符串中查找选定的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44508240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com