下面SQL的问号地方该怎么下,才能实现
既包含"23",又包含"56",还包含"78"?即'78aaaaaaaaa23fr56tttttt'匹配的
而'78aaaaaaaaa23frtttttt' 不匹配
    select 1 from dual where regexp_like('78aaaaaaaaa23fr56tttttt', '??', 'i')

解决方案 »

  1.   

    with a as (select '78aaaaaaaaa23fr56tttttt' as b from dual)
     select 1 from a where b like '78%' and b like '%23%' and b like '%56%';不知道是不是你想要的。
      

  2.   

    用like我当然会,regexp_like怎么写
      

  3.   

    select str from test where regexp_like(str,'78\w+23\w+56')
    ?
      

  4.   

    不灵哦,查不到资料select 1 from dual where regexp_like('23sssd78dffff56fff','78\w+23\w+56')
      

  5.   

    总的放在一个语句中是要考虑字段出先的先后顺序,建议拆开select 1 from dual where regexp_like('78aaaaaaaaa23fr56tttttt', '^*23*', 'i')
    AND regexp_like('78aaaaaaaaa23fr56tttttt', '^*56*', 'i')
    AND regexp_like('78aaaaaaaaa23fr56tttttt', '^*78*', 'i')