sql - 在 SQL 中过滤字母数字字符串
问题描述
我已经检查了相关问题并尝试了那里的解决方案,但没有一个有效。
我有一列需要过滤每个字母数字字符串,模式无关紧要,只要找到字母和数字,就需要过滤掉。我已经尝试过使用 regex ^(?=[A-Za-z0-9])[A-Za-z0-9]+$
,[^a-zA-Z\d\s:]
(使用双重否定),但我的输出中仍然有一堆字母数字字符串。
我使用的最后一个查询是
SELECT distinct ID
FROM TABLE
where ID like '^(?=[A-Za-z0-9])[A-Za-z0-9]+$' and ID is not null
我已经玩过反转like
但无济于事,它仍然输出字母数字字符串。如果有帮助,这是使用雪花。
解决方案
如果您想要正则表达式,请使用regexp
:
where id regexp '^(?=[A-Za-z0-9])[A-Za-z0-9]+$'
like
不是用于正则表达式,而是用于 SQL 模式匹配。它唯一的通配符是_
and %
。
如果你想要一个字母和一个数字,那么这可能更简单:
where id regexp '[a-zA-Z]' and id regexp '[0-9]'
或者作为一种表达方式:
where id regexp '([a-zA-Z].*[0-9])|([0-9].*[a-zA-Z])'
如果您只想要字母和数字:
where id not regexp '[^a-zA-Z0-9]'
推荐阅读
- python - 创建 ZipFile 对象后,Flask FileStorage 文件变为空
- javascript - 在 Javascript 中添加与参数内容匹配的数组
- terraform - 缺少配置版本 Terraform Cloud
- c - ARM32,phys_to_virt,无法在虚拟地址处处理内核分页请求
- r - 检查 R 中流记录的连续性
- python - 在 python 中使用电子邮件模块发送电子邮件
- ios - 有没有办法在 Detox react Native 中获取设备(ios 模拟器)健康统计信息?
- c - 为什么我可以使用 CLion 修改字符串文字?
- registry - GPO 用户注册表首选项 - 值被放入额外的运行键
- c# - 如何从表达式主体成员返回空的 IEnumerable