【发布时间】:2015-08-17 09:30:14
【问题描述】:
我有一个 SQL 查询:
select
t1.name, t2.address
from
Table1 t1
inner join
Table2 t2 on t1.id = t2.id;
还有一张地图:
Map<String,String> map = new HashMap<String,String>();
map.put("testTable", "hive.DB1");
map.put("testTable", "mongo.DB2");
我只想使用这张地图将上述查询转换为:
select
t1.name, t2.address
from
hive.DB1.`Table1` t1
inner join
mongo.DB2.`Table2` t2 on t1.id = t2.id;
哪种开源 SQL 解析器适合此目的。
【问题讨论】:
-
我猜(希望)您使用
on而不是where,不是吗? -
顺便问一下,你从哪里得到你的字段(在选择中:
t1.name,t2.address)从你的地图? -
@RaphaëlAlthaus 我更新了我的问题。这只是一个例子。
-
我不需要从地图中获取这些字段。这些字段保持原样。我只想更改表名。
-
你需要指定SQL的方言。那里有许多解析器,都针对不同供应商的方言。然后你会发现你正在使用的那个是否真的适合这个任务。
标签: sql parsing sql-parser