• oracle 通配符及regexp_count函数说明


    通配符

    通配符描述示例
          %:匹配包含零个或更多字符的任意字符串。WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。
          _(下划线):匹配任何单个字符。WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。
          [ ]:指定范围 ,([a-f]) 或集合 ([abcdef]) 中的任何单个字符。WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
          [^]:不属于指定范围, ([a-f]) 或集合 ([abcdef]) 的任何单个字符。WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始且其后的字母不为 l 的所有作者的姓氏。

    转义符

    1、单引号[']转换成两个单引号['']就可以了

    例:SELECT * FROM TBL WHERE COL = 'ABC''DEF'; 

    2、Escape 转义字符

    [%]、[_]

    SELECT * FROM TBL WHERE COL LIKE 'ABC/%/_/%/_%' ESCAPE '/'; 

     3、  REGEXP_COUNT函数说明

    Oracle的11g引入此函数

      REGEXP_COUNT ( source_char, pattern [, position [, match_param]])

    REGEXP_COUNT 返回pattern 在source_char 串中出现的次数。如果未找到匹配,则函数返回0。position 变量告诉Oracle 在源串的什么位置开始搜索。在开始位置之后每出现一次模式,都会使计数结果增加1。

    match_param 变量支持下面几个值:

    ‘i’ 用于不区分大小写的匹配
    ‘c’ 用于区分大小写的匹配
    ‘n’ 允许句点(.)作为通配符去匹配换行符。如果省略该参数,则句点将不匹配换行符
    ‘m’ 将源串视为多行。即Oracle 将^和$分别看作源串中任意位置任何行的开始和结束,而不是仅仅看作整个源串的开始或结束。如果省略该参数,则Oracle将源串看作一行。
    ‘x’ 忽略空格字符。默认情况下,空格字符与自身相匹配。

    select REGEXP_COUNT('GEORGE','GE',1,'i')  
       from DUAL;

  • 相关阅读:
    235. Lowest Common Ancestor of a Binary Search Tree
    234. Palindrome Linked List
    233. Number of Digit One
    232. Implement Queue using Stacks
    231. Power of Two
    230.Kth Smallest Element in a BST
    229. Majority Element II
    228. Summary Ranges
    postgres 数组中获取最后一个元素的值
    excel 拆分单元格并填充上一行的数据
  • 原文地址:https://www.cnblogs.com/yaoyiyao/p/7116319.html
Copyright © 2020-2023  润新知