我试图使用SQL(Redshift)提取英国邮政编码的第一部分 例如, BT28 8YT 应该返回 BT - 所以基本上是前一个或两个字母字符,但它不应该返回一个数字。我发现英国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
答案 0 :(得分:1)
您也可以使用SIMILAR TO来执行此操作。例如,对于WC邮政编码,您可以使用:
postcode similar to 'WC[1-2][A-Z][[:space:]][A-Z0-9]{3}'
等。