我编写了如下的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;