日期:2014-05-16  浏览次数:20749 次

请教Oracle的正则表达式
下面SQL的问号地方该怎么下,才能实现
既包含"23",又包含"56",还包含"78"?

即'78aaaaaaaaa23fr56tttttt'匹配的
而'78aaaaaaaaa23frtttttt' 不匹配


    select 1 from dual where regexp_like('78aaaaaaaaa23fr56tttttt', '??', 'i')

------解决方案--------------------
总的放在一个语句中是要考虑字段出先的先后顺序,建议拆开

select 1 from dual where regexp_like('78aaaaaaaaa23fr56tttttt', '^*23*', 'i')
AND regexp_like('78aaaaaaaaa23fr56tttttt', '^*56*', 'i')
AND regexp_like('78aaaaaaaaa23fr56tttttt', '^*78*', 'i')