-
去除字符串前后空格
-
1 trim(string):去除指定字符串string的左右空格,
注意,string中间有空格的时候是不会被去除的,全角空格此方法不能去除,采用1.4的方法String1也设置为全角空格可行。
CASE: SELECT trim(' aaa bbb ccc ') FROM dual; --------- 输出结果是:aaa bbb ccc两边空格都去除了
- 2 ltrim(string):去除指定字符串string左侧的空格
CASE: SELECT ltrim(' aaa bbb ccc ') FROM dual;--------- 输出结果是:aaa bbb ccc 右侧有空格
- 3 rtrim(string):去除指定字符串string右侧的空格
CASE: SELECT rtrim(' aaa bbb ccc ') FROM dual;--------- 输出结果是: aaa bbb ccc左侧有空格
- 4 trim (both string1 FROM string2) : 从string2中去除两侧(默认是both(both可以不写),即左右侧都去掉)的string1字符,
注意,string1只能是单个字符。
CASE:SELECT trim(both 'a' from ' aaa bbb aa ') FROM dual;------输出结果是: aaa bbb aa 两边的a都没有去掉空格也在 SELECT trim(both 'a' from ' aaa bbb aacc') FROM dual;------输出结果是: aaa bbb aacc两边的a都没有去掉 SELECT trim(both 'a' from 'aaa bbb aa') FROM dual;------输出结果是: bbb 两边的a都去掉了b两边的空格还在
注:由上测试可以看出------trim的所有方法再去除字符时,只要遇到与匹配规则不同的字符,就不在往下进行匹配了,leading ,trailing 也是的;
- 5 trim (leading string1 FROM string2):从string2中去除左侧的string1字符
CASE:SELECT trim(leading ' ' from ' aaa bbb ccc ') FROM dual;------输出结果是:aaa bbb ccc 右侧空格还在左侧空格被去除
- 6 trim (trailing string1 FROM string2):从string2中去除右侧的string1字符
CASE:SELECT trim(trailing ' ' from ' aaa bbb ccc ') FROM dual;------输出结果是: aaa bbb ccc左侧空格还在右侧空格去除
- 7 ltrim(string1,string2): 从string1的左侧去除string2
CASE:SELECT ltrim('abcecba','abc') FROM dual;--------输出结果是:ecba;
- 8 rtrim(string1,string2): 从string1的右侧去除string2
CASE:SELECT rtrim('abcecba','abc') FROM dual; -------输出结果是:abce; SELECT rtrim('eabccba','abce') FROM dual; -------输出结果是:空;
注:ltrim(string1,string2),rtrim(string1,string2);string2可以理解为是多个字符组成的“字符集合”,而不是“字符串”,因为在以string2为基础对string1做字符去除的时候,string2并不是作为一个字符串那样的整体来与string1匹配的,而是单个单个字符的匹配。比如string1='abccba',string2='abc',如果string2作为一个整体来匹配,显然不管是用ltrim还是rtrim函数,对string1操作之后返回的结果应该是'cba',但实际上不是,返回的是一个空串!直到在string1中遇上某个字符,该字符不在string2字符集合中,不在往下匹配;和上面单个字符的类似,只不过一个是字符集合,一个是单个字符串。
此文章持续更新