我有一张像下面这样的table
names age gender
v_mark 25 male
j_david 26 male
S_Rose 28 Female
mark 21 male
首先我需要找出名称值是否包含“下划线”,然后我需要根据特定条件将名称值的“下划线”替换为“空格”或“逗号”。
如果性别是男性,我需要将“下划线”替换为空格如果性别是女性,我需要将“下划线”替换为逗号。
我在google上搜索过,发现我需要使用locate(检查值中是否有下划线)和regexp\u 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
有人能帮我吗。
2条答案
按热度按时间4urapxun1#
问题是在代码下面的case使用之后出现了“(”
locate(“,table1.names)-1>0和table1.gender='male'时使用大小写,然后使用regexp\u替换(t1.names,“,”),locate(“,table1.names)-1>0和table1.gender='female'时使用regexp\u替换(t1.names,“,”),否则table1.names以names1结尾
6jjcrrmo2#
case语句和regex将为您提供所需的结果。