oracle 函数替换与去空格

来源:互联网 发布:apache 2.4 模式切换 编辑:程序博客网 时间:2024/06/05 06:04

1、trim  去掉前后空格

          SELECT trim('Ab d| ') FROM dual 结果:Ab d|

           也可以设置去前空格或者是后空格

                SELECT trim(trailing from' A b d| ') FROM dual  结果  A b d|
                SELECT trim(leading from  ' A b d| ') FROM dual  结果 A b d| 

2、TRANSLATE:匹配式去空格

     例子1:  SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual; 结果123456

                    SELECT TRANSLATE('acdftys','abcdefghij','123456') FROM dual; 结果1346tys

  规则:TRANSLATE(expr,from,to)
                  expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。

     例子2:select TRANSLATE('acdd','cd','') from dual; 结果 是空

  规则: 三个参数中有一个是空,返回值也将是空值。

   正因为有这两条规则:所以要剔除字符串中的乱七八糟的字符/\|可用 例子3

     例子3: SELECT TRANSLATE('Abd| ', 'A|/\', 'A') FROM dual  结果 Abd

    去空格的例子:

                  SELECT TRANSLATE(' A b d|  ', 'A', 'A') FROM dual  结果Abd|

3、replace: 替换 连接到一起替换

        select replace('acdd','cd','') from dual;   结果是ad

        去空格的例子 select replace('ac dd ',' ','') from dual;  结果acdd


   注意:最一开始看到别人写了个

              SELECT TRANSLATE('Abd| ', 'A|/\', 'A') FROM dual    :只觉得‘’A|/\‘’是个正则表达式;但又怪怪的,所以在看一些函数的时候要注意不要跑偏哈,要看函数是否支持正则。