Oracle兼容-函数-TRIM()/LTRIM()/RTRIM()函数
1. 语法
1. TRIM(str)
2. TRIM(LEADING [remchr] FROM str)
3. TRIM(TRAILING [remchr] FROM str)
4. TRIM(BOTH [remchr] FROM str)
5. TRIM(remchr FROM str)
7. LTRIM(str[, remstr])
8. RTRIM(str[, remstr])
2. 定义和用法
因为GreatSQL已原生支持 TRIM()/LTRIM()/RTRIM() 函数,因此想要在GreatSQL中使用扩展后的函数时,需要先执行 SET sql_mode = ORACLE; 激活Oracle兼容模式。
在Oracle兼容模式下,各个函数的作用分别如下:
TRIM()函数的作用是从字符串str中删除指定的字符remchr,未声明remchr时则默认删除空格。LTRIM()函数的作用是从字符串str的最左侧起,删除指定的字符串remstr,未声明remstr时则默认删除空格。RTRIM()函数的作用是从字符串str的最右侧起,删除指定的字符串remstr,未声明remstr时则默认删除空格。
各参数说明如下:
remchr:要删除的字符,在Oracle兼容模式下,TRIM()函数只能指定删除一个字符(不是一串字符串),默认为空格(注意:空格不是空值)。当参数remchr为空值(‘’)时,结果总是返回NULL。特别说明:是中文、emoji等虽然是多字节字符,但在TRIM()函数中,仍被视为一个字符。remstr:要删除的字符串,用于LTRIM()/RTRIM()函数。LEADING:从头部开始,删除到第一个不是remchr的位置。TRAILING:从尾部开始,删除到第一个不是remchr的位置。BOTH:开头和结尾都算,都不指定时默认启用。
3. 示例
1. greatsql> SET sql_mode = ORACLE;
2. -- " GreatSQL " 字符串首尾各有两个空格
3. greatsql> SELECT TRIM(LEADING '' FROM ' GreatSQL ');
4. +--------------------------------------+
5. | TRIM(LEADING '' FROM ' GreatSQL ') |
6. +--------------------------------------+
7. | NULL |
8. +--------------------------------------+
10. greatsql> SELECT TRIM(LEADING ' ' FROM ' GreatSQL '), LENGTH(TRIM(LEADING ' ' FROM ' GreatSQL ')) AS LEN;
11. +---------------------------------------+------+
12. | TRIM(LEADING ' ' FROM ' GreatSQL ') | LEN |
13. +---------------------------------------+------+
14. | GreatSQL | 10 |
15. +---------------------------------------+------+
17. -- 不指定默认就是BOTH
18. greatsql> SELECT TRIM(' ' FROM ' GreatSQL '), LENGTH(TRIM(' ' FROM ' GreatSQL ')) AS LEN;
19. +-------------------------------+------+
20. | TRIM(' ' FROM ' GreatSQL ') | LEN |
21. +-------------------------------+------+
22. | GreatSQL | 8 |
23. +-------------------------------+------+
25. -- 指定多余一个字符,报错
26. greatsql> SELECT TRIM('ea' FROM ' GreatSQL ');
27. ERROR 7564 (HY000): trim set should have only one character
29. -- 一个中文视为一个字符
30. greatsql> SELECT TRIM('库' FROM 'GreatSQL数据库');
31. +--------------------------------------+
32. | TRIM('库' FROM 'GreatSQL数据库') |
33. +--------------------------------------+
34. | GreatSQL数据 |
35. +--------------------------------------+
37. -- 一个emoji字符视为一个字符
38. greatsql> SELECT TRIM('😀' FROM 'GreatSQL数据库😀');
39. +-------------------------------------+
40. | TRIM('?' FROM 'GreatSQL数据库?') |
41. +-------------------------------------+
42. | GreatSQL数据库 |
43. +-------------------------------------+
45. -- LTRIM()/RTRIM()支持多个字符
46. greatsql> SELECT LTRIM('GreatSQL', 'Great');
47. +----------------------------+
48. | LTRIM('GreatSQL', 'Great') |
49. +----------------------------+
50. | SQL |
51. +----------------------------+
53. greatsql> SELECT RTRIM('GreatSQL', 'SQL');
54. +--------------------------+
55. | RTRIM('GreatSQL', 'SQL') |
56. +--------------------------+
57. | Great |
58. +--------------------------+
60. greatsql> SELECT RTRIM(' GreatSQL '), LENGTH(RTRIM(' GreatSQL '));
61. +-----------------------+-------------------------------+
62. | RTRIM(' GreatSQL ') | LENGTH(RTRIM(' GreatSQL ')) |
63. +-----------------------+-------------------------------+
64. | GreatSQL | 10 |
65. +-----------------------+-------------------------------+
67. greatsql> SELECT LTRIM(' GreatSQL '), LENGTH(LTRIM(' GreatSQL '));
68. +-----------------------+-------------------------------+
69. | LTRIM(' GreatSQL ') | LENGTH(LTRIM(' GreatSQL ')) |
70. +-----------------------+-------------------------------+
71. | GreatSQL | 10 |
72. +-----------------------+-------------------------------+
问题反馈
联系我们
扫码关注微信公众号

