sql - SQL 提取特殊字符 oracle 11g
问题描述
我有一个要求,我需要获取具有特殊字符的完整数据,包括少数例外。我尝试使用REGEXP_LIKE (STATE,'[^A-Za-z0-9, ]')
但无法得出结果。
1) 以下是不能为空白或有特殊字符的关键字段。
一个。名称1
湾。名称2
C。联系人1
d。地址1
e. 地址2
F。城市
G。英石
H。压缩
2) 供应商不允许的特殊字符包括
, . / ? < > ; : ‘ “ [ ] \ | { } ! @ # $ % ^ & * ( ) - _ = +
例外 #1 - Name1,Name2,Contact1 字段允许以下- ‘ .
例外 #2 - 地址 1、地址 2 允许关注 # /
选择查询:
select Name1, Name2, Contact1, Address1, Address2, City, STATE, Zip
from tableA
解决方案
您正在尝试查找所有带有特殊字符的行,对吗?尝试这个。
select Name1, Name2, Contact1, Address1, Address2, City, STATE, Zip
from tableA
where regexp_instr(name1 || name2 || contact1, '[^.[:alnum:], -'']') > 0
or regexp_instr(address1 || address2, '[^[:alnum:], #/]') > 0
or regexp_instr(city || state || zip, '[^[:alnum:], ]') > 0
我建议[:alnum:]
在这里使用,因为如果您设置了 NLS_SORT,A-Z
可能会出现不可预测的行为。如果您不担心这一点,则A-Za-z0-9
工作方式非常相似。
推荐阅读
- geb - 在 Geb/Spock 中调用 js.exec 时,exec 方法被标记为“null”
- excel - 无法使用 selenium VBA 从网页的下拉列表中选择一个值
- bazel - 在多仓库中使用 Bazel
- php - 使用 cURL 下载部分图像。如何检测?
- apache-spark - Pyspark process array column using udf and return another array
- linux - 调用 tcflow(fildes, TCOOFF) 后,我可以继续将输出数据放在串行端口上吗?
- javascript - 如何在 GeoFire.set 对象中保存其他属性,firebase?
- php - 使用 Nginx 并行运行 PHP 和 React
- python - 数据框布局适应 - 转置,将行转换为列名并分组
- maven - 在 Jenkins 上构建的 Maven 作业给出错误“无法执行默认部署目标”