Oracle兼容-函数-INITCAP()函数


1. 语法

1. INITCAP(string)

2. 定义和用法

INITCAP() 函数的作用是将字符串中的每个单词的首字母转为大写,其他字母转为小写。每个单词由空格或除字母和数字之外的字符分隔开。

  • 在GreatSQL中,当string中包含转义字符(\0 \' \" '' \\ \b \B \n \N \r \R \t \T \z \Z)时,不会被当做2个字符,而是当做1个字符来处理。这会导致GreatSQL和Oracle的结果存在差异,在ORACLE中转义字符在 INITCAP() 函数处理后输出2个字符,比如:INITCAP('\n') 结果为 \N,而在GreatSQL中转义字符在 INITCAP() 函数处理后输出1个字符,比如:INITCAP('\n') 结果为 换行。
  • 当参数 string 是数值类型时,不会将输出结果转为科学计数法。另外,如果 string 超过81个数字,会导致溢出截断,此时结果为 65个9。

3. 示例

1. greatsql> SELECT INITCAP('hello world');
2. +------------------------+
3. | INITCAP('hello world') |
4. +------------------------+
5. | Hello World            |
6. +------------------------+

8. greatsql> SELECT INITCAP('hello你好world');
9. +-----------------------------+
10. | INITCAP('hello你好world')   |
11. +-----------------------------+
12. | Hello你好World              |
13. +-----------------------------+

15. greatsql> SELECT INITCAP('hello123world');
16. +--------------------------+
17. | INITCAP('hello123world') |
18. +--------------------------+
19. | Hello123world            |
20. +--------------------------+

22. greatsql> SELECT INITCAP(NULL);
23. +------------------------------+
24. | INITCAP(NULL)                |
25. +------------------------------+
26. | NULL                         |
27. +------------------------------+

29. greatsql> SELECT INITCAP('hello\nworld');
30. +-------------------------+
31. | INITCAP('hello\nworld') |
32. +-------------------------+
33. | Hello
34. World             |
35. +-------------------------+

37. greatsql> SELECT INITCAP('hello\1world');
38. +-------------------------+
39. | INITCAP('hello\1world') |
40. +-------------------------+
41. | Hello1world             |
42. +-------------------------+

44. greatsql> SELECT INITCAP('àabcd abÀcd abcdÀ');
45. +---------------------------------+
46. | INITCAP('àabcd abÀcd abcdÀ')    |
47. +---------------------------------+
48. | Àabcd Abàcd Abcdà               |
49. +---------------------------------+

51. greatsql> SELECT INITCAP(111111111111111111111111111111111111111111111111111111111111111111111111111111111);
52. +--------------------------------------------------------------------------------------------+
53. | INITCAP(111111111111111111111111111111111111111111111111111111111111111111111111111111111) |
54. +--------------------------------------------------------------------------------------------+
55. | 111111111111111111111111111111111111111111111111111111111111111111111111111111111          |
56. +--------------------------------------------------------------------------------------------+

58. greatsql> SELECT INITCAP(1111111111111111111111111111111111111111111111111111111111111111111111111111111111);
59. +---------------------------------------------------------------------------------------------+
60. | INITCAP(1111111111111111111111111111111111111111111111111111111111111111111111111111111111) |
61. +---------------------------------------------------------------------------------------------+
62. | 99999999999999999999999999999999999999999999999999999999999999999                           |
63. +---------------------------------------------------------------------------------------------+
64. 1 row in set, 1 warning (0.00 sec)

66. greatsql> SHOW WARNINGS;
67. +---------+------+------------------------------------------------------------------------------------------------------------------------+
68. | Level   | Code | Message                                                                                                                |
69. +---------+------+------------------------------------------------------------------------------------------------------------------------+
70. | Warning | 1292 | Truncated incorrect DECIMAL value: '111111111111111111111111111111111111111111111111111111111111111111111111111111111' |
71. +---------+------+------------------------------------------------------------------------------------------------------------------------+

问题反馈

联系我们

扫码关注微信公众号

greatsql-wx