本文介绍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)