BigQuery中如何使用SQL移除字段值中的撇号s('s)
BigQuery 清洗字段移除撇号s('s)的方法
针对单字段的数据清洗需求,直接用BigQuery内置字符串函数即可实现,按实际业务场景选对应方案即可:
- 全局精确移除所有's子串
这是性能最优的通用方案,适合要把字段里所有出现的连续字符's全部删掉的场景,你提到的Let's Go样例用这个方法处理后会直接输出Let Go,完全匹配需求。
仅查询清洗后结果、不修改原表数据的示例代码:
如果需要把清洗结果直接写回原表,用UPDATE语句即可:SELECT REPLACE(your_column_name, "'s", "") AS cleaned_column FROM `your_project.your_dataset.your_table`注意:执行更新操作前请先备份原表数据,避免误改无法恢复
UPDATE `your_project.your_dataset.your_table` SET your_column_name = REPLACE(your_column_name, "'s", "") -- 加WHERE条件仅处理带's的行,大数据量下能减少无效计算、提升执行效率 WHERE your_column_name LIKE "%'s%" - 仅移除词尾的's(避免误删词中内容)
如果你的数据里存在类似O'Sullivan这类词中带撇号s的专有名词、不需要删除中间的's,就用正则替换匹配词尾边界的's:
正则表达式里的SELECT REGEXP_REPLACE(your_column_name, r"'s\b", "") AS cleaned_column FROM `your_project.your_dataset.your_table`\b代表词边界,只会匹配作为单词后缀出现的's,不会改动单词内部的同字符组合。
内容的提问来源于stack exchange,提问作者Woofer
相关产品推荐
相关产品推荐

