【发布时间】:2015-12-17 10:09:36
【问题描述】:
我如何修改这个 InitCap 函数,以便它在字符串末尾时总是大写 AB 并且前面有一个空格。
- 测试 Ab AB
- testab
-
abtest
分隔符 $$
DROP FUNCTION IF EXISTS `CapitializeFirstCharInEveryWord`$$ CREATE FUNCTION `CapitializeFirstCharInEveryWord`(x char(100)) RETURNS char(100) CHARSET utf8 BEGIN SET @str=''; SET @l_str=''; WHILE x REGEXP ' ' DO SELECT SUBSTRING_INDEX(x, ' ', 1) INTO @l_str; SELECT SUBSTRING(x, LOCATE(' ', x)+1) INTO x; SELECT CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(@l_str,1,1)),LOWER(SUBSTRING(@l_str,2)))) INTO @str; END WHILE; RETURN LTRIM(CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(x,1,1)),LOWER(SUBSTRING(x,2))))); END$$
【问题讨论】:
-
标记使用的 dbms。 (看起来不像 ANSI SQL...)
-
根据那些可怕的反引号添加了
mysql。
标签: mysql sql database sql-function