【发布时间】:2016-07-19 01:14:23
【问题描述】:
我有一张像下面这样的表格
names age gender
v_mark 25 male
j_david 26 male
S_Rose 28 Female
mark 21 male
首先我需要找出名称值是否包含“下划线”,然后 我需要根据具体情况将 name 值替换为“空格”或“逗号”。
如果性别是男性,我需要将“下划线”替换为空格 如果性别是女性,我需要用逗号替换“下划线”。
我在 google 中搜索过,我发现我需要使用 Locate(检查值中是否存在“下划线”)和 regexp_replace(根据条件用逗号替换下划线)我尝试了 When 和 @ 987654323@ 但出现错误。下面是我的代码。
CASE
(
WHEN LOCATE("_",Table1.names)-1 > 0 AND Table1.gender='male' THEN regexp_replace(T1.names, "_"," ")
WHEN LOCATE("_",Table1.names)-1 > 0 AND Table1.gender='Female' THEN regexp_replace(T1.names, "_",",")
ELSE Table1.names
END
) AS names1
我需要像
这样的输出names1 age gender
v mark 25 male
j david 26 male
S,Rose 28 Female
mark 21 male
谁能帮帮我。
【问题讨论】:
标签: hive