INITCAP()的相反功能

时间:2011-06-03 07:54:56

标签: mysql sql postgresql

我们可以与INITCAP()函数相反吗?它将每个单词的第一个字母设置为小写,将其余字母设置为大写。

例如,SOMEFUNCTION(abc)会返回aBC

1 个答案:

答案 0 :(得分:2)

您可以在下面找到MySQL的功能。

delimiter //
create function lower_first (input varchar(255))
returns varchar(255)
deterministic
begin
declare len int;
declare i int;
set len   = char_length(input);
set input = upper(input);
set i = 0;
while (i < len) do
    if (mid(input,i,1) = ' ' or i = 0) then
        if (i < len) then
            set input = concat(
                          left(input,i),
                          lower(mid(input,i + 1,1)),
                          right(input,len - i - 1)
                        );
        end if;
    end if;
    set i = i + 1;
end while;
return input;
end; //
delimiter ;

select lower_first('this is my TeSt'); -- tHIS iS mY tEST