snowflake-cloud-data-platform - 替代雪花中的正则表达式
问题描述
我正在尝试在雪花中使用 oracle 正则表达式代码,但是在雪花中按预期工作时得到空值作为结果。
要求:比较邮政编码,如果符合格式则返回结果。
SELECT
CASE WHEN REGEXP_LIKE('AB101TZ','^[A-Z]{2}[0-9]+') THEN 'AB101TZ'
WHEN REGEXP_LIKE('AB101TZ','^[A-Z][0-9]+') THEN 'AB101TZ'
ELSE '-'
END postcode_part_a
这个表达式需要做哪些修改
解决方案
REGEXP_LIKE 必须匹配整个字符串,而不仅仅是它的一部分,才能返回 true。
您可能想要这样的东西(在 Snowflake REGEXP 中自动锚定):
[A-Z]{2}[0-9]{1,3}[A-Z]{2}
这将匹配模式 2 个大写字母,后跟 1 到 3 个数字,然后是 2 个大写字母。您可以根据您正在编码的国家/地区的邮政编码进行适当调整。
推荐阅读
- javascript - 滚动到视图元素隐藏在标题后面
- python - 如何在 tf.data.Dataset.from_generator 中保留字典键?
- wsdl - WSDLToJava:当 org.slf4j.helpers.NOPLogger 在类路径上时,AbstractGenerator 中的 NPE 调用 new VelocityGenerator(false)
- google-sheets - 测试单元格值是否在数组公式的区间内
- google-bigquery - 如何从 bigquery 将 gzip 压缩的 json 文件上传到 gcs 存储桶
- javascript - 使用应用程序脚本将表格图表从谷歌电子表格发送到松弛
- python - 开发回合制战斗系统的问题
- html - Flexbox space-between 均匀的项目分布
- django - 有没有办法从 django admin 动态添加 html 文件?
- angular - 更新 Angular 响应式表单中的验证器