其他角色,我想創建一個查詢,我選擇其中包含不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