是挺怪的,
select rtrim('aaa bbb aaa abc aaa', 'abc'),
rtrim('aaa bbb aaa abc aaa', 'aaa'),
ltrim('aaa bbb aaa abc aaa', 'abc')
from dual
结果:
--------------- ---------------- ----------------
aaa bbb aaa abc aaa bbb aaa abc bbb aaa abc aaa
select rtrim('aaa bbb aaa abc aaa', 'abc'),
rtrim('aaa bbb aaa abc aaa', 'aaa'),
ltrim('aaa bbb aaa abc aaa', 'abc')
from dual
结果:
--------------- ---------------- ----------------
aaa bbb aaa abc aaa bbb aaa abc bbb aaa abc aaa
that appear in set removed;
Oracle begins scanning char from its first character and removes all characters that appear in set until reaching a character not in set and then returns the result.结果符合说明
RTRIM(string[,trimchars])
--
其中:
string 任意VARCHAR2型或CHAR型的数据
trimchars 准备压缩掉的字符(串)一般前缀字符总是空格。LTRIM是左匹配一个字符所以:
SQL> select ltrim('aaa bbb aaa abc aaa', 'abc') from dual;LTRIM('AAABBBAAAABCAAA','ABC')
------------------------------
bbb aaa abc aaa
这样的结果就是去除左边起一个字符为'a'开头的非空字符串RTRIM是右匹配一个字符所以:
SQL> select rtrim('aaa bbb aaa abc aac','abc') from dual;RTRIM('AAABBBAAAABCAAC','ABC')
------------------------------
aaa bbb aaa abc
这样的结果就是去除右边起一个字符为'c'开头的非空字符串trimchars 你可以直接理解为一个字符就不会有疑惑了