Oracle TRIM() 函数使用指南

Oracle TRIM() 是一个内置函数,它返回一个删除了任何指定的前导和尾随字符(默认为空格)的字符串。

如果您需要从字符串的左侧删除字符,请使用 LTRIM();如果您需要从字符串的右侧删除字符,请使用 RTRIM()

Oracle TRIM() 语法

这里是 Oracle TRIM() 函数的语法:

TRIM(str)
TRIM(trim_character FROM str)
TRIM({BOTH | LEADING | TRAILING} trim_character FROM str)

这里:

  • BOTH 代表同时删除前导和尾随的字符
  • LEADING 代表只删除前导字符
  • TRAILING 代表只删除尾随的字符
  • 如果不指定 {BOTH | LEADING | TRAILING},则默认值为 BOTH

参数

str

必需的。需要处理的字符串。它可以是 CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, 或 NCLOB 类型的值。

trim_character

可选的。需要删除的前缀和后缀字符。您只能指定一个字符。如果不指定这个 trim_character,则默认值为一个空格。

返回值

Oracle TRIM() 函数返回一个删除了任何指定的前导和尾随字符(默认为空格)的字符串。

如果任意一个参数为 NULLTRIM() 将返回 NULL

Oracle TRIM() 示例

这里有几个展示了 Oracle TRIM() 函数用法的示例。

删除空白

这个语句展示了如何使用 Oracle TRIM() 函数删除 ' Hello ' 两侧的空白:

SELECT
    '   Hello   ' Origin,
    TRIM('   Hello   ') Result
FROM dual;

输出:

ORIGIN         RESULT
______________ _________
   Hello       Hello

删除指定字符

这个语句展示了如何使用 Oracle TRIM() 函数删除 '___***#Hello' 两侧的 _*# 字符:

SELECT
    '___Hello___' Origin,
    TRIM('_' FROM '___Hello___') Result
    TRIM('_' FROM '___Hello___') Result
FROM dual;

输出:

ORIGIN         RESULT
______________ _________
___Hello___    Hello

BOTH vs LEADING vs TRAILING

这个语句展示了 BOTH, LEADINGTRAILING 的工作方式:

SELECT
    '___Hello___' Origin,
    TRIM(BOTH '_' FROM '___Hello___') BOTH,
    TRIM(LEADING '_' FROM '___Hello___') LEADING,
    TRIM(TRAILING '_' FROM '___Hello___') TRAILING
FROM dual;

输出:

ORIGIN         BOTH     LEADING     TRAILING
______________ ________ ___________ ___________
___Hello___    Hello    Hello___    ___Hello

NULL 参数

如果任意一个参数为 NULLTRIM() 将返回 NULL

SET NULL 'NULL';
SELECT
    TRIM(NULL) Result1,
    TRIM(NULL FROM 'ABC') Result2,
    TRIM('ABC' FROM NULL) Result3
FROM dual;

输出:

RESULT1    RESULT2    RESULT3
__________ __________ __________
NULL       NULL       NULL

在本示例中,我们使用 SET NULL 'NULL'; 语句将 NULL 值显示为 'NULL' 字符串。

结论

Oracle TRIM() 是一个内置函数,它返回一个删除了任何指定的前导和尾随字符(默认为空格)的字符串。