我刚接触大查询,不确定提取英国邮政编码的第一部分的解决方案。因为left函数似乎不被支持。所以我的邮政编码是W2 1su Se1 5bt Se23 7an
我想提取w2 Se1 Se22
你知道我如何在大型查询中做到这一点吗?
谢谢
发布于 2020-06-24 23:40:56
case when CHAR_LENGTH(DBS_Formatted_Postcode)=6 then substr(DBS_Formatted_Postcode,1,2)
when CHAR_LENGTH(DBS_Formatted_Postcode)=7 then substr(DBS_Formatted_Postcode,1,3)
when CHAR_LENGTH(DBS_Formatted_Postcode)=8 then substr(DBS_Formatted_Postcode,1,4)
end as postcode_district,发布于 2020-06-24 23:45:05
下面是针对BigQuery标准SQL的说明
您可以像下面的示例一样使用SPLIT(DBS_Formatted_Postcode, ' ')[OFFSET(0)]
#standardSQL
SELECT SPLIT(DBS_Formatted_Postcode, ' ')[OFFSET(0)] AS postcode_district
FROM `project.dataset.table` 如果要应用于问题中的样本数据-输出为
Row postcode_district
1 W2
2 Se1
3 Se23 注意:实际上-在BQ中有很多方法可以做到这一点-例如,另一个选择是使用像REGEXP_EXTRACT(DBS_Formatted_Postcode, r'([^ ]+) ')这样的正则表达式函数
https://stackoverflow.com/questions/62551746
复制相似问题