Select 'Total schools' As Title, Count(1) As Total_Count
From (Select Distinct School_Name, Indv_Id
From D_Education D
where Regexp_Like(School_Name,'[^A-Za-z0-9, -./]+')
);
此查询返回大约100个不同的学校名称。
由此返回的大多数记录都有特殊字符,如?,\或空格。我的问题是,为什么在检查排除空格的情况下会恢复空白空间记录。多卡斯广场 - 这样的记录即将到来。
感谢任何帮助:)
答案 0 :(得分:4)
这个表达式:
where Regexp_Like(School_Name, '[^A-Za-z0-9, -./]+')
只需要名单中不包含列表中中的至少一个字符。
如果您想要具有特殊字符的名称,可能就是您想要的:
where not Regexp_Like(School_Name, '^[A-Za-z0-9, -./]$')
这是检查名称中的所有字符是否有效。 ^
和$
是正则表达式中的锚点。它们要求整个字符串与模式匹配。
编辑:
要允许单引号,您可以这样做:
where not Regexp_Like(School_Name, '^[A-Za-z0-9, -./'']$')
您需要将单引号加倍,因为它是字符串的分隔符。