雪花 - 检查字符串的第一个 3 个字符是否为字母



我试图确定如何在Snowflake SQL中识别产品代码是否以三个字母开头。

建议?

我刚刚尝试了:左(P0。产品代码,3(不像"[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

最新更新