2016-06-22 15 views
0

当我使用INITCAP时,它返回字符,每个单词的第一个字母大写,所有其他字母小写。oracle:initCap不转换所有其他小写字母

所以这这是导致

INITCAP(预言DB)===> Oracle数据库。

但是我需要Oracle DB的结果。

只有大写每个单词中的第一个字符而不强制其他字符更低。有没有办法做到这一点 ?

+0

您必须拆分文本然后使用initcap,然后再将其与其他拆分文本一起添加 – Avi

+0

请提供其他测试用例。例如它应该如何转换这些字符串:'mcdonald','connor mcdonald','coNnor mcDonalD'? –

回答

1

尝试这样:

initcap(substr('oracle DB',0,2)) + substr('oracle DB',2) 

concat(initcap(substr('oracle DB',0,2)) , substr('oracle DB',2)) 
0
select 
concat(upper(substr(mytext,1,1)), substr(mytext,2)) as result 
from (
    select 'oracle DB' as mytext from dual 
) q; 

如果是因为只有字符串的第一个字符,然后UPPERing第一个字符是不够好。

相关问题