报 invalid table alias or column reference ‘JNL' 的错
时间: 2024-02-16 12:02:49 浏览: 179
出现该错误是因为在子查询中的表别名`JNL`无法被正确识别。在 Hive 中,子查询中的表别名无法在外部查询中使用,需要将子查询的结果作为一个临时表,然后再与外部表进行连接。
以下是修改后的示例代码:
```
SELECT
CASE
WHEN subquery.sum = 0 OR subquery.sum IS NULL
THEN SUBSTR(JNL.FIELD522, 1, 2)
END
FROM
FCM_ABR_F_TBFTJNL_S JNL
LEFT JOIN (
SELECT
SUM(INSTR(CONCAT(temp.FIELD522, "\n", temp.FIELD523, "\n", temp.FIELD524, "\n", temp.FIELD525), UPPER(PRM.NATIONALITY))) sum
FROM (
SELECT
FIELD522, FIELD523, FIELD524, FIELD525
FROM
FCM_ABR_F_TBFTJNL_S
) temp
JOIN
BDSP_FHTS60015.PARA_NATIONALITY PRM
ON
INSTR(CONCAT(temp.FIELD522, "\n", temp.FIELD523, "\n", temp.FIELD524, "\n", temp.FIELD525), UPPER(PRM.NATIONALITY)) > 0
) subquery
ON
1 = 1;
```
在上面的修改中,我们将子查询中的表别名`JNL`替换成临时表`temp`,然后与`BDSP_FHTS60015.PARA_NATIONALITY`表进行连接,最后计算字符串匹配的总和。
阅读全文