Oracle trim函数用法详解


今天看Oracle文档,发现trim函数的用法不仅仅局限于去除字符串的空格!特翻阅官方解释,并最如下实验,希望大家共同学习!

1. 首先看一下trim函数的语法图:http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions199.htm

语法描述如下:

TRIM([ { { LEADING | TRAILING | BOTH }
         [ trim_character ]
       | trim_character
       }
       FROM
     ]
     trim_source
    )参数解释:

leading   开头字符

trailing    结尾字符

both        开头和结尾字符

trim_character  去除的字符

trim_source      修剪源

2. 下面进行功能介绍:

trim函数用来去除一个字符串的开头或结尾(或两者)的字符。

 1)如果指定leading参数,oracle数据库将去除任何等于trim_character的开头字符。

例:

SQL> select trim(leading 'x' from 'xdylan') "test_trim" from dual;

test_trim
--------------------
dylan

2)如果指定traling参数,oracle将去除任何等于trim_character的结尾字符。

例:

SQL> select trim(trailing 'x' from 'dylanx') "test_trim" from dual;

test_trim
--------------------
dylan

3)如果指定了both参数或者三个参数都未指定,oracle将去除任何等于trim_character的开头和结尾字符。

例:

SQL> select trim(both 'x' from 'xdylanx') "test_trim" from dual;

test_trim
--------------------
dylan

SQL> select trim('x' from 'xdylanx') "test_trim" from dual;

test_trim
--------------------
dylan

4)如果没有指定trim_character参数,默认去除的值为空格。

例:

SQL> select trim(both from ' dylan ') "test_trim" from dual;

test_trim
--------------------
dylan

5)如果只指定修剪源(trim_source),oracle将去除trim_source的开头和结尾的空格。

例:

SQL> select trim(' dylan ') "test_trim" from dual;

test_trim
--------------------
dylan

6)trim函数返回一个varchar2类型值。该值最大的长度等于trim_source的长度。

7)如果trim_source和trim_character有一个为null,则trim函数返回null。

例:

SQL> select trim(trailing null  from 'dylan ') "test_trim" from dual;

test_trim
--------------------

 


SQL> select trim(trailing 'x'  from null) "test_trim" from dual;

test_trim
--------------------

注意:trim_character和trim_source都可以为以下任意一种数据类型:CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, OR NCLOB。

返回值的类型与trim_source的数据类型一致。下面是官方的例子:检索employees表中雇用日期不以0开头的记录。

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

相关内容