sql - 雪花 - 检查字符串是否为字母数字?
问题描述
我有一列不应包含任何字母数字值。我努力了
case when col1 like '%[0-9]%'
then 1
else 0
end
但这不起作用。
解决方案
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*$')
推荐阅读
- php - Laravel 为什么数据透视表是空的?
- javascript - window.location.replace 偶尔不运行
- sql - 使用 IN 子句的 SQL 偏移总行数变慢
- python - ValueError: 预期 ndim=3,替换 BatchNormalization 后发现 ndim=2
- c# - Xamarin Forms C# Live 计算地理位置距离
- node.js - 在 array.foreach 中查询数据库 Sequelize
- ios - 表单内堆栈内的按钮在边界外处于活动状态
- python - 如何根据另一列的计数删除具有 51%+ NaN 值的行
- algorithm - 我必须重复多少次特定的洗牌才能回到我开始的地方?
- if-statement - 如何在 HTML 属性中注入 if 语句?