SQL在hive中执行是正确的,但是使用hive-jdbc ResultSet rs = st.executeQuery(sql) 执行,却在别名处报语法错误
SQL:
SELECT
aa.customerid
FROM
(
(SELECT
customerid
FROM
oder
WHERE saleno = 101870
AND orderstatus NOT IN (1000, 1007, 1008)
AND obcustomertype != 1004
AND source = 1001
AND zipcode != 'null') as aa
LEFT JOIN
(SELECT
customerid
FROM
oder
WHERE saleno IN (
101345,
101955,
101000,
101099,
101362
)
AND orderstatus NOT IN (1000, 1007, 1008)
AND obcustomertype != 1004
AND source = 1001
AND zipcode != 'null') as bb
ON aa.customerid = bb.customerid
)
WHERE bb.customerid IS NULL
根据你提供的SQL语句 我发现SQL语句中的别名以及其他语法都是正确的。但是在使用 hive-jdbc ResultSet rs = st.executeQuery(sql) 执行时却在别名处报语法错误。
一个可能的原因是,hive-jdbc 的版本不支持某些关键字或语句,导致查询无法正确执行。建议升级你使用的 hive-jdbc 版本,或者查看 hive-jdbc 的文档,了解它所支持的关键字和语句。