其他角色,我想创建一个查询,我选择其中包含不AZ或az字符的所有记录的Oracle SQL - REGEXP_LIKE包含除AZ或az
所以像这样
SELECT * FROM mytable WHERE REGEXP_LIKE(column_1, '![A-Z] [a-z]')
其他角色,我想创建一个查询,我选择其中包含不AZ或az字符的所有记录的Oracle SQL - REGEXP_LIKE包含除AZ或az
所以像这样
SELECT * FROM mytable WHERE REGEXP_LIKE(column_1, '![A-Z] [a-z]')
该^
否定字符类:
SELECT * FROM mytable WHERE REGEXP_LIKE(column_1, '[^A-Za-z]')
当我们运行时,我们会返回诸如“AB Future”之类的记录。我们做错了什么?运行相同的查询如上... FYI有开一个类似的问题在http://stackoverflow.com/questions/30948012/oracle-query-to-find-string-not-containing-characters – 2015-06-22 13:41:57
@Marcus模式看除上/下字母之外的_any_字符,以及单个空格匹配。它不强制该字符串包含_only_非字母。如果你必须确保_no_非字母字符匹配,锚一样'^ [^ A-ZA-Z] + $'正则表达式 - 我认为这是你的要求。由于空间的原因,锚定图案不应该匹配。 – 2015-06-22 13:43:40
基本上我希望找到具有字符的字符串_other_比包括AZ,az随着用户互动,增加人物,如0-9,',','-'等 – 2015-06-22 13:48:52
喜欢的东西
select *
from foo
where regexp_like(col1, '[^[:alpha:]]') ;
应该工作
SQL> create table foo(col1 varchar2(100));
Table created.
SQL> insert into foo values('abc');
1 row created.
SQL> insert into foo values('abc123');
1 row created.
SQL> insert into foo values('def');
1 row created.
SQL> select *
2 from foo
3 where regexp_like(col1, '[^[:alpha:]]') ;
COL1
--------------------------------------------------------------------------------
abc123
IIRC,尝试'NOT REGEXP_LIKE()',虽然这对MySQL。 – Bojangles 2012-03-07 15:55:12
@JamWaffles如果我明白了,OP是寻找包含任何非字母字符的结果。所以'NOT'只会返回包含_no_字母字符的行。 – 2012-03-07 15:59:44
@迈克尔哎呀!感谢您注意到这一点。我现在感觉很傻。 – Bojangles 2012-03-07 16:01:31