我必须过滤一列,使我从该列获取的数据看起来不像
'66******1'
或'66*******1'
。那么如何使用具有不同字符串长度的LIKE
?
答案 0 :(得分:2)
您可能需要regexp_like()
:
where not regexp_like(col, '^66[*]{6,7}1$')
如果*
旨在表示任何字符,则:
where not regexp_like(col, '^66.{6,7}1$')
答案 1 :(得分:2)
您可以使用通配符测试两个字符的数量:
where (your_col not like '66______1' and your_col not like '66_______1')
如果您要在66和1之间表示任意个字符,则可以改用%通配符:
where your_col not like '66%1'
其中不包括661、66 * 1、66 ** 1等
答案 2 :(得分:0)
或者可能是普通 SUBSTR
:
where substr(col, 1, 2) <> '66'
or substr(col, -1) <> '1'
答案 3 :(得分:0)
为什么要使它复杂化
where column not like '66_______1' or column not like '66______1'
答案 4 :(得分:0)
很简单
WHERE col NOT LIKE '66%1'