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. +------------------------+
  7. greatsql> SELECT INITCAP('hello你好world');
  8. +-----------------------------+
  9. | INITCAP('hello你好world') |
  10. +-----------------------------+
  11. | Hello你好World |
  12. +-----------------------------+
  13. greatsql> SELECT INITCAP('hello123world');
  14. +--------------------------+
  15. | INITCAP('hello123world') |
  16. +--------------------------+
  17. | Hello123world |
  18. +--------------------------+
  19. greatsql> SELECT INITCAP(NULL);
  20. +------------------------------+
  21. | INITCAP(NULL) |
  22. +------------------------------+
  23. | NULL |
  24. +------------------------------+
  25. greatsql> SELECT INITCAP('hello\nworld');
  26. +-------------------------+
  27. | INITCAP('hello\nworld') |
  28. +-------------------------+
  29. | Hello
  30. World |
  31. +-------------------------+
  32. greatsql> SELECT INITCAP('hello\1world');
  33. +-------------------------+
  34. | INITCAP('hello\1world') |
  35. +-------------------------+
  36. | Hello1world |
  37. +-------------------------+
  38. greatsql> SELECT INITCAP('àabcd abÀcd abcdÀ');
  39. +---------------------------------+
  40. | INITCAP('àabcd abÀcd abcdÀ') |
  41. +---------------------------------+
  42. | Àabcd Abàcd Abcdà |
  43. +---------------------------------+
  44. greatsql> SELECT INITCAP(111111111111111111111111111111111111111111111111111111111111111111111111111111111);
  45. +--------------------------------------------------------------------------------------------+
  46. | INITCAP(111111111111111111111111111111111111111111111111111111111111111111111111111111111) |
  47. +--------------------------------------------------------------------------------------------+
  48. | 111111111111111111111111111111111111111111111111111111111111111111111111111111111 |
  49. +--------------------------------------------------------------------------------------------+
  50. greatsql> SELECT INITCAP(1111111111111111111111111111111111111111111111111111111111111111111111111111111111);
  51. +---------------------------------------------------------------------------------------------+
  52. | INITCAP(1111111111111111111111111111111111111111111111111111111111111111111111111111111111) |
  53. +---------------------------------------------------------------------------------------------+
  54. | 99999999999999999999999999999999999999999999999999999999999999999 |
  55. +---------------------------------------------------------------------------------------------+
  56. 1 row in set, 1 warning (0.00 sec)
  57. greatsql> SHOW WARNINGS;
  58. +---------+------+------------------------------------------------------------------------------------------------------------------------+
  59. | Level | Code | Message |
  60. +---------+------+------------------------------------------------------------------------------------------------------------------------+
  61. | Warning | 1292 | Truncated incorrect DECIMAL value: '111111111111111111111111111111111111111111111111111111111111111111111111111111111' |
  62. +---------+------+------------------------------------------------------------------------------------------------------------------------+

问题反馈

联系我们

扫码关注微信公众号

greatsql-wx