在Oracle中,我想檢查一下字符串是否在末尾有「=」符號,請讓我知道如何檢查它,如果字符串末尾有'='符號,我需要對尾隨「=」標誌。Oracle模式匹配
用於例如,
varStr VARCHAR2(20);
varStr = 'abcdef='; --needs to trailing '=' sign
在Oracle中,我想檢查一下字符串是否在末尾有「=」符號,請讓我知道如何檢查它,如果字符串末尾有'='符號,我需要對尾隨「=」標誌。Oracle模式匹配
用於例如,
varStr VARCHAR2(20);
varStr = 'abcdef='; --needs to trailing '=' sign
使用REGEX_EXP
功能。我把一個SQL命令,因爲你沒有對你的問題:
select *
from someTable
where regexp_like(someField, '=$');
指定
模式$
表示先例字符應該在字符串的末尾。
在這裏看到它在SQL小提琴:http://sqlfiddle.com/#!4/d8afd/3
我不認爲你需要「模式匹配」在這裏。只是檢查,如果最後一個字符是=
where substr(varstr, -1, 1) = '='
當負位置稱爲將從字符串的結尾工作substr
,所以substr(varstr,-1,1)
提取定字符串的最後一個字符。
似乎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$');