我有一个单元格,其中包含多个用逗号分隔的字符串值。我只需要提取一个字符串。 例子: 单元格值:[{id=111,title=Arun.P,jobTitle=数据分析师}] 预期结果:Arun.P
SELECT regexp_extract(团队成员姓名, 'title=([^,]+)', 1) AS extract_title 来自表_a
错误:编译语句时出错:FAILED:ParseException 第 1:21 行无法识别表达式规范中“regexp_extract”“(”“team”附近的输入
有点正确,您可以使用
REGEXP_EXTRACT
函数根据正则表达式提取子字符串。这是您的示例的一种可能有效的语法:
SELECT REGEXP_EXTRACT(`team member name`, 'title=([^,]+)', 1) AS extracted_title FROM table_a;
它与
'title=([^,]+)'
表中名为 team member name
的列中的正则表达式 table_a
匹配。正则表达式捕获“title=”后面的值,直到遇到逗号。
如果列名包含空格或特殊字符,请务必使用反引号。
这应该会给你预期的结果。如果您遇到任何问题或者数据结构发生变化,您可能需要相应地调整正则表达式。