模糊查询中,在一般的数据中是支持使用中括弧([])来实现匹配里面的任意字符的,如 sname LIKE '张[三四]' 就能匹配张三或张四 这两个名字,但Oracle中把[]看成普通字符,所以这时候只能匹配 张[三四] 这样的字符串,那么我想知道,Oracle有什么新的功能去实现原来的需求吗?模糊查询

解决方案 »

  1.   


    with tb as 
    (
    select '张三' name from dual union
    select '张四' from dual union
    select '张菲' from dual
    )
    select * from tb where regexp_like(name,'张[三|四]')
      

  2.   

    10g后才有正则,之前只能用in和like标准sql
      

  3.   

    REGEXP_LIKE 是能解决问题,但就是稿不懂,Oracle到底想闹哪样啊,好好的SQL规则,他就稿特色!
      

  4.   

    还有,ESCAPE 到底怎么实现啊,请楼上指明!
      

  5.   


    你搞笑吧,一个sqlserver的语法 能代表sql规则???就你这语法,我所了解的,也就只能在sqlserver 玩玩。像oracle,mysql这些数据库就不行。。
      

  6.   

    谢谢楼上的提醒,由于我最开始学的是sqlserver,所以也移位这种用法是SQL的标准,但是觉得还是挺好用,挺实用的。