在Oracle中我想检查字符串是否在末尾有“=”符号。你能告诉我如何检查它。如果它在字符串末尾有'='符号,我需要跟踪它'='符号。
例如,
varStr VARCHAR2(20);
varStr = 'abcdef='; --needs to trailing '=' sign
答案 0 :(得分:2)
我认为你不需要“模式匹配”。只需检查最后一个字符是否为=
where substr(varstr, -1, 1) = '='
使用否定位置调用时, substr
将从字符串的末尾起作用,因此substr(varstr,-1,1)
将提取给定字符串的最后一个字符。
答案 1 :(得分:0)
使用REGEX_EXP
功能。我正在输入一个sql命令,因为你没有在你的问题上指明。:
select *
from someTable
where regexp_like( someField, '=$' );
模式$
表示先前字符应位于字符串的末尾。
在sql fiddle上看到它:http://sqlfiddle.com/#!4/d8afd/3
答案 2 :(得分: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$' );