snowflake-check字符串是否为字母数字?

jtjikinw  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(240)

我有一列不应该包含任何字母数字值。我试过了

case when col1 like '%[0-9]%' 
    then 1 
    else 0 
end

但这是行不通的。

yeotifhr

yeotifhr1#

like 不明白你给出的模式。如果需要正则表达式匹配,请使用正则表达式函数:

select col1, regexp_like(col1, '.*[0-9].*') has_number from mytable

这将为您提供一个布尔值( true / false ). 如果你想要一个号码,你可以 cast 或者使用 case 而不是表达式。
这将检查字符串是否包含任何数字。如果要搜索任何字母数字字符,则 \w 很方便:

regexp_like(col1, '.*\\w.*')

最后,如果要确保字符串只包含字母数字字符:

regexp_like(col1, '^\\w*$')
jxct1oxe

jxct1oxe2#

您的语句不起作用,因为您需要使用regexp关键字来使用regexp,而您的regexp是错误的。

select ...
from   ...
where
  lower(field) regexp '[a-z0-9]+'

请参阅此处的regexp文档

相关问题