У меня есть таблица, как показано нижеРасположить, REGEXP_REPLACE UDFs улей, чтобы заменить строку в столбце
names age gender
v_mark 25 male
j_david 26 male
S_Rose 28 Female
mark 21 male
Сначала мне нужно Findout значения имен содержит «подчеркивание» или нет, тогда мне нужно заменить «подчеркивание «с« пробелом »или« запятой »имя значений, основанных на конкретном состоянии.
Если пол мужчина, мне нужно заменить «подчеркивание» пробелом Если пол женский, мне нужно заменить «подчеркивание» запятой.
Я сделал поиск в Google, и я обнаружил, что мне нужно использовать Locate (для проверки «подчеркивание» есть в значении) и regexp_replace (Чтобы заменить подчеркивание с запятой, основываясь на состоянии) я попытался When
и Case
но получение ошибки. Ниже мой код.
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
Может кто-нибудь мне помочь.