如何在BigQuery中移除字符串中的"R$ "并转换为float类型
解决BigQuery中去除货币格式并转换为Float的问题
问题根源:你写的正则表达式
r"R$ "里,$是正则的特殊元字符,代表行的结尾,所以无法匹配字符串中的R$部分,必须把$转义为普通字符才能正确匹配。正确SQL写法:
先通过REGEXP_REPLACE去除货币符号与空格,再用SAFE_CAST转换为float类型(使用SAFE_CAST可避免转换失败时触发报错):SELECT SAFE_CAST(REGEXP_REPLACE(string_column, r"R\$ ", "") AS FLOAT64) AS numeric_value FROM your_table_name扩展处理:
如果你的货币字符串包含千分位分隔符(比如R$ 1.230.00),可以用更通用的正则一次性清除所有非数字和小数点的字符:SELECT SAFE_CAST(REGEXP_REPLACE(string_column, r"[^\d.]", "") AS FLOAT64) AS numeric_value FROM your_table_name正则
[^\d.]会匹配所有非数字、非小数点的字符,一键清理货币符号、空格、千分位分隔符等干扰内容。
内容的提问来源于stack exchange,提问作者Ricardo Prata
相关产品推荐
相关产品推荐

