2016-10-17 44 views
0

我需要,除非有之前或者之後它查詢限制字符串字段沒有之前或者之後它

"Department of" ,"Dept. of", "Dept Of" 
數字串寫在Oracle的查詢,其限制在一個字段中的以下的字符串值的數字值

例如,我希望查詢拒絕像"Department of""Dept. of","Dept Of""ABC Department of'這樣的值不應被考慮,但它可以在數字字符串存在時接受這些值。例如"Department of 1234""Dept. of 4567""2134 Dept. of"或「9864 Department of"不應該限制。

我想使用REGEXP功能,但我不能夠拿出一個查詢,以處理可能之前或之後的具有NUMERIC的情況下,字符串值

我沒有數據位於字符串("Dept. 21 of")之間的數值,因此不需要考慮這種情況。查找數據是否存在於列中將無濟於事,因爲表中有數字和數據分開的其他記錄從「部門」,「部門」的」,‘部門中’

TIA

+0

嘗試檢查給定字符串中是否存在0到9的數字 – BekaBot

+2

http://stackoverflow.com/questions/11341492/how-do-i-check-if-a-string-contains-a-number – TheGameiswar

+0

@ Gameiswarthis之一是不同的。 OP提到「。如果列中存在一個數字,找到它將無濟於事,因爲表格中除了」Department of「,」Dept。的「,」部門的「。」 –

回答

1

你想用regexp_like()

where regexp_like(col, '[0-9] +(Dept. of|Department of|Dept Of)') or 
     regexp_like(col, '(Dept. of|Department of|Dept Of)') +[0-9]) 

你或許可以將這些轉換爲一個正則表達式,但我認爲兩個表達更容易。

相關問題