如何在Hive中硬编码新列,将自定义前缀与表字段值拼接生成目标列
问题原因
你原SQL中将map_val.role_name也包裹在单引号内,Hive会将整段内容识别为固定字符串,不会解析读取关联表role_name字段的动态值,所以输出全是写死的静态内容。
解决方案
Hive中拼接字符串使用concat()函数,将固定前缀字符串和动态字段作为参数传入即可,修改后的SQL如下:
select distinct concat('CART-data-', map_val.role_name) as ProdMN from VRN_544.RLT_001 AS mk_roles JOIN VRMM.map_valxx AS map_val ON ( Upper(Trim(map_val.role_name)) = Upper(Trim(mk_roles.rltx_02)) )
执行上述SQL后即可得到预期输出,自动拼接每个匹配到的role_name值生成对应ProdMN字段内容。
内容的提问来源于stack exchange,提问作者awzzy
相关产品推荐
相关产品推荐

