这个SQL语句在MySQL没什么问题,在Hive库中该如何替换,Hive并不支持IN语句的写法;
2条回答 默认 最新
- 社区专家-Monster-XH 2023-03-31 18:55关注
基于Monster 组和GPT的调写:
SELECT NAME AS NAMECASE, CASE WHEN t.TESTVALUE IS NOT NULL THEN CONCAT('key_personal/', ADDRESS) ELSE CONCAT('common_personal/', ADDRESS) END AS GENDER FROM key_person kp LEFT JOIN test_table t ON kp.GENDER = t.TESTVALUE;
用了一个LEFT JOIN来连接key_person表和test_table表。连接条件是kp.GENDER = t.TESTVALUE,相当于原来IN子查询中的条件GENDER IN (SELECT TESTVALUE FROM test_table)。
CASE表达式的语法也被修改,将条件移至WHEN子句中,并在THEN子句中提供相应的结果。如果条件不满足,则CASE表达式会返回ELSE子句中的结果。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报