2014-07-14 91 views
0

在Oracle中,我想檢查一下字符串是否在末尾有「=」符號,請讓我知道如何檢查它,如果字符串末尾有'='符號,我需要對尾隨「=」標誌。Oracle模式匹配

用於例如,

varStr VARCHAR2(20); 

varStr = 'abcdef='; --needs to trailing '=' sign 

回答

0

使用REGEX_EXP功能。我把一個SQL命令,因爲你沒有對你的問題:

select * 
    from someTable 
where regexp_like(someField, '=$'); 
指定

模式$表示先例字符應該在字符串的末尾。

在這裏看到它在SQL小提琴:http://sqlfiddle.com/#!4/d8afd/3

2

我不認爲你需要「模式匹配」在這裏。只是檢查,如果最後一個字符是=

where substr(varstr, -1, 1) = '=' 

當負位置稱爲將從字符串的結尾工作substr,所以substr(varstr,-1,1)提取定字符串的最後一個字符。

0

似乎substr是要走的路,至少我的約400K地址線的樣本數據返回1043個條目,以'r'結尾,平均爲0.2秒。

select count(*) from addrline where substr(text, -1, 1) = 'r'; 

另一方面,以下返回相同的結果,但需要1.1秒。

select count(*) from addrline where regexp_like(text, 'r$');