1 sql contains letter sql-like snowflake-cloud-data-platform
我试图确定如何在 Snowflake SQL 中识别产品代码是否以三个字母开头。
建议?
我只是尝试过: LEFT(P0.PRODUCTCODE,3) NOT LIKE '[a-zA-Z]%' 但它不起作用。
谢谢大家
您可以用来REGEXP_LIKE返回一个布尔值,指示您的字符串是否与您感兴趣的模式匹配。
在你的情况下,类似REGEXP_LIKE(string_field_here, '[a-zA-Z]{3}.*')
分解正则表达式模式:
[a-zA-Z]: 只匹配字母字符,无论大小写{3}: 需要其中三个字母.*:在这三个字母之后允许任意数量的任意字符注意:在许多情况下,您需要在模式中专门指示字符串的开头/结尾,但 Snowflake 的实现会为您处理该问题。来自文档:
该函数隐式地在两端锚定一个模式(即“”自动变为“^$”,“ABC”自动变为“^ABC$”)。要匹配以 ABC 开头的任何字符串,模式将为“ABC.*”。
您可以尝试运行这些示例:
SELECT REGEXP_LIKE('abc', '[a-zA-Z]{3}.*') AS _abc,
REGEXP_LIKE('123', '[a-zA-Z]{3}.*') AS _123,
REGEXP_LIKE('abc123', '[a-zA-Z]{3}.*') AS _abc123,
REGEXP_LIKE('123abc', '[a-zA-Z]{3}.*') AS _123abc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5879 次 |
| 最近记录: |