如何在Google BigQuery中去除双引号并将数据类型转为String
解决JSON Object转String并去除双引号的问题
你之前的SQL语句存在两个问题:
replace函数参数不完整,它需要三个参数:原字符串、待替换的字符、替换后的字符,你只传入了前两个。- 没有明确要去除的是首尾的外层双引号还是所有双引号,不同需求的处理方式不同。
针对不同需求的解决方案
仅去除首尾的外层双引号
用trim函数指定去除首尾的双引号,适合JSON转string后整体被双引号包裹的场景:SELECT trim(cast([column name] AS string), '"') FROM [table name]去除所有双引号(包括JSON内部键值对的引号)
补全replace函数的第三个参数(空字符串),就能把所有双引号替换掉:SELECT replace(cast([column name] AS string), '"', '') FROM [table name]
补充说明
部分SQL引擎有专门的JSON处理函数,比如PostgreSQL可以用jsonb_pretty或jsonb_to_text直接转换JSON为字符串,再进行处理;BigQuery中把JSON类型转成string后,默认不会带外层双引号,此时如果要去除内部引号,直接用上面的replace语句即可。
内容的提问来源于stack exchange,提问作者Mayank Vashisht
相关产品推荐
相关产品推荐

