根据字符串长度使用like

时间:2018-06-19 11:35:41

标签: sql oracle sql-like

我必须过滤一列,使我从该列获取的数据看起来不像 '66******1''66*******1'。那么如何使用具有不同字符串长度的LIKE

5 个答案:

答案 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'