Redshift中的英国邮政编码区
Posted
技术标签:
【中文标题】Redshift中的英国邮政编码区【英文标题】:UK Postcode area in Redshift 【发布时间】:2016-08-16 08:38:20 【问题描述】:我正在尝试使用 SQL (Redshift) 提取英国邮政编码的第一部分 例如,BT28 8YT 应该返回 BT - 所以基本上是前一个或两个字母字符,但它不应该返回数字。我发现 UK Govt 正则表达式有点难以使用!
这是我目前所拥有的,但我正在努力解决我应该使用什么正则表达式函数,所以 redshift 会引发语法错误。
[Amazon]() Invalid operation: syntax error at or near "REGEXP";
SELECT
IF((left(orders.customer_postcode,2) REGEXP '[0-9]') = 0, left(orders.customer_postcode,2), left(orders.customer_postcode,1)) AS "orders.postcode_area"
FROM orders
【问题讨论】:
【参考方案1】:邮政编码区域总是一两个字母后跟一个数字。
看起来您可以使用 REGEXP_SUBSTR 来执行此操作:
http://docs.aws.amazon.com/redshift/latest/dg/REGEXP_SUBSTR.html
select regexp_substr(customer_postcode,'^[a-zA-Z]1,2') from orders
【讨论】:
【参考方案2】:您也可以使用SIMILAR TO 来执行此操作。例如,您可以使用 WC 邮政编码:
postcode similar to 'WC[1-2][A-Z][[:space:]][A-Z0-9]3'
等
【讨论】:
以上是关于Redshift中的英国邮政编码区的主要内容,如果未能解决你的问题,请参考以下文章