我在列中有以下值。
TOM-TOM
TOMMY
TOM 12
123_TOM
SITTOM
TOM TIM
TOM,TIN
TOP TOM TON
TOMA
ATOM
如何只选择这些行:
TOM-TOM
TOM 12
123_TOM
TOM TIM
TOM,TIN
TOP TOM TON
但不是以下行
SITTOM
TOMMY
TOMA
ATOM
如果TOM之前或之后的一个字符是非字母,则应显示这些行。
答案 0 :(得分:0)
您可以使用public int indexOf(Object target) {
for (int i = 0; i < array.length; i++) {
if (equals(target, array[i])) {
return i;
}
}
return -1;
}
:
REGEXP_LIKE
以下是使用的正则表达式的细分:
select t.col
from table t
where regexp_like(t.col, '(^|[^a-zA-Z])TOM([^a-zA-Z]|$)')
- 开始一行或非字母字符; ^|[^a-zA-Z]
- TOM; TOM
- 行或非字母字符的结尾。如果您想考虑非英文字母,可以使用([^a-zA-Z]|$)
代替:alpha:
:
a-zA-Z
在SQLFiddle上尝试:http://sqlfiddle.com/#!4/439b6/1