前面笔者就提到了要将TRIM函数做一下总结的,现在就把自己做的练习记录下来

     通过前面知道了TRIM函数的作用可以去除字符串的空格。例如:           

         select TRIM('s' from 'ssmith') from emp;--删除指定的字符结果为:mith          select trim('   ORALCE    ') FROM EMP;--删除左右两边的空格
         Tips:需要注意的是删除指定的字符的时候,要删除的只能为一个字符,不能为字符串

                     而且删除的时候会存在递归。

          在深入了解TRIM之前先将LTRIM和RTRIM函数进行一下回顾

              LTRIM:

            SELECT LTRIM('    kiritor') from emp;--删除左边的空格              --删除左边的字符或字符串              SELECT LTRIM('kiritor oralce','kiritor') from emp;  
             RTRIM:至于其用法参照LTRIM就行了。

         接下来就是TRIM了:其用法不仅仅局限于去除字符串的空格

             首先看看这个函数官方的语法图吧:

                  http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions199.htm

            Oracle数据库之SQL单行函数---字符函数之TRIM_rtrim

              看看其语法描述吧:

               Oracle数据库之SQL单行函数---字符函数之TRIM_ltrim_02

               leading:开始字符

               trailing:结尾字符

               both:开头和结尾字符,默认

               trim_character:去除的字符

               trim_source:源字符串

               无实战不学习!下面简要的练习一下

               例子1:

          select trim(leading 'x' from 'xxyxxz') from dual;--删除前面的            --结果为:yxxz  
               例子2:    
          select trim( 'x' from 'xxyxxzxx') from dual;--删除两边的            --结果为:yxxz  
                   对于traling就不测试了

               例子3:        

           --不指定删除的字符,默认删除空格             select trim(both  from 'xxyxxzxx') from dual;             --只指定源字符则为去掉两端的空格             select trim(' oralce ') from dual;  
                   tips:这里需要注意的是from前面必须指定both或者leading、或则trailing

                           不然出错!

              注意识相:

               1、上面需要注意的是trim返回的是一个varchar2类型值,长度最大为trim_source的长度

               2、 如果trim_source或则trim_character为null,trim函数返回null。

               3、  trim_source或则trim_character支持一下任意一种数据类型:char VARCHAR2, NCHAR,

                        NVARCHAR2, CLOB, OR NCLOB。函数trim的返回类型与trim_source一致
                 下面是官方的例子:

                    SELECT employee_id,
                      TO_CHAR(TRIM(LEADING 0 FROM hire_date))
                       FROM employees
                   WHERE department_id = 60;

                    EMPLOYEE_ID TO_CHAR(T
                          ----------- ---------
                         103 3-JAN-90
                         104 21-MAY-91
                         105 25-JUN-97
                         106 5-FEB-98
                         107 7-FEB-99