南大通用GBase 8a 去掉开头和结尾空格或自定字符的函数trim、LTrim、RTrim使用

本文介绍GBase 8a里对开头和结尾处字符,特别是空格,的处理函数trim,ltrim和rtrim的使用方法。

语法

TRIM([{BOTH | LEADING | TRAILING} [trim_char] FROM] str)。
LTRIM(str)
RTRIM(str)

说明

移除字符串 str中所有的 trim_char 前缀或后缀,然后将其返回。如果没有给出任何 BOTH、LEADING 或 TRAILING 修饰符,会假定为 BOTH。如果没有指定 trim_char,将移除空格。

LTRIM和rtrim是trim的快捷形式,移出开头和结尾的空格。

  • BOTH 开头和结尾
  • LEADING 开头的
  • TRAILING 结尾的
  • trim_char 要移除的字符,可以是多个。 默认是空格。

样例

移除空格

如下的字符串@a,前后都有1个空格,样例分别示例了溢出前后空格,移除左空格和移除右空格的结果。

其中ltrim和rtrim只能用于移除空格,不能指定字符。

gbase> set @a=' ABC ';
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> select trim(@a),ltrim(@a),rtrim(@a);
+----------+-----------+-----------+
| trim(@a) | ltrim(@a) | rtrim(@a) |
+----------+-----------+-----------+
| ABC      | ABC       |  ABC      |
+----------+-----------+-----------+
1 row in set (Elapsed: 00:00:00.00)

gbase> select trim(@a),length(trim(@a)),ltrim(@a),length(ltrim(@a)),rtrim(@a),length(rtrim(@a));
+----------+------------------+-----------+-------------------+-----------+-------------------+
| trim(@a) | length(trim(@a)) | ltrim(@a) | length(ltrim(@a)) | rtrim(@a) | length(rtrim(@a)) |
+----------+------------------+-----------+-------------------+-----------+-------------------+
| ABC      |                3 | ABC       |                 4 |  ABC      |                 4 |
+----------+------------------+-----------+-------------------+-----------+-------------------+
1 row in set (Elapsed: 00:00:00.00)

移除指定字符

如下例子,移除开头和结尾的前后的字符‘A'

gbase> set @a='AABBCCBBAA';
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> select trim(both 'A' from @a),trim(leading 'A' from @a),trim(trailing 'A' from @a);
+------------------------+---------------------------+----------------------------+
| trim(both 'A' from @a) | trim(leading 'A' from @a) | trim(trailing 'A' from @a) |
+------------------------+---------------------------+----------------------------+
| BBCCBB                 | BBCCBBAA                  | AABBCCBB                   |
+------------------------+---------------------------+----------------------------+
1 row in set (Elapsed: 00:00:00.00)

移除多个字符

如下例子移除了多个字符’XYZ'

gbase> set @a='XYZAABBCCBBAAXYZ';
Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> select trim(both 'XYZ' from @a),trim(leading 'XYZ' from @a),trim(trailing 'XYZ' from @a);
+--------------------------+-----------------------------+------------------------------+
| trim(both 'XYZ' from @a) | trim(leading 'XYZ' from @a) | trim(trailing 'XYZ' from @a) |
+--------------------------+-----------------------------+------------------------------+
| AABBCCBBAA               | AABBCCBBAAXYZ               | XYZAABBCCBBAA                |
+--------------------------+-----------------------------+------------------------------+
1 row in set (Elapsed: 00:00:00.00)