如何将指定Informix SQL语句转换为适配Hive的HiveQL语句
Informix SQL转HiveQL实现方案
原语法语义说明
你提供的Informix语句中outer(table2 t2, table3 t3)是Informix特有的老式左外连接简写语法,实际逻辑为:table1 左外连接 table2与table3的内连接结果集,关联条件对应原语句的WHERE子句规则。
转换后等价HiveQL语句
和原Informix逻辑完全一致的HiveQL写法如下:
SELECT cols FROM table1 t1 LEFT JOIN ( SELECT * FROM table2 t2 INNER JOIN table3 t3 ON t2.type = t3.type ) t23 ON t1.id = t23.id
可选调整写法
如果你的实际业务需求是允许t2匹配成功但t3匹配失败时,t3相关字段返回null(原Informix写法默认不支持该逻辑),可以改用连续左连语法:
SELECT cols FROM table1 t1 LEFT JOIN table2 t2 ON t1.id = t2.id LEFT JOIN table3 t3 ON t2.type = t3.type
内容的提问来源于stack exchange,提问作者Ismail
相关产品推荐
相关产品推荐

