错误:当前子查询表达式只允许作为hive中的where子句谓词



我编写了如下的hive查询语言。它给了我写在标题上的错误。查询是:

SELECT clnt_nbr,
CASE
WHEN clnt_nbr in
(SELECT clnt_NBR
FROM crd_master
WHERE crd_typ = '198' or crd_typ = '199' ) THEN 1
ELSE 0
END) AS f_ultima
FROM INT_CLNT_master
ORDER BY clnt_nbr;

我在这个hive查询中得到错误

目前子查询表达式只允许作为hive中的where子句谓词。

请使用ansi join语法像下面这样重写hive ql。如果您看到重复,请使用子查询并使用distinct。

select icm.clnt_nbr, 
case when cm.clnt_nbr is not null then 1 else 0 end as f_ultima 
from INT_CLNT_master icm 
Left outer join crd_master cm on icm.clnt_nbr=cm.clnt_NBR and ( crd_typ = '198 or crd_typ = '199' )
order by clnt_nbr;

相关内容

  • 没有找到相关文章

最新更新