13

我需要一种使用 Oracle 10g 将列值转换为 CamelCase 的方法。我更喜欢在我的 select 语句中执行它,但如果我必须使用函数,那也可以。

我不需要支持下划线,只需要空格。

谢谢

4

2 回答 2

42

我猜initcap()和的组合replace()会起作用:

select replace(initcap('hi ben'),' ') from dual;

REPLA
-----
HiBen

这只是将每个单词的第一个字符大写,然后将空格替换为空。

如果第一个字符是数字,它显然不起作用:

select replace(initcap('go 2stack overflow'),' ') from dual;

REPLACE(INITCAP(
----------------
Go2stackOverflow
于 2012-09-04T15:15:31.943 回答
2

这不是我对 camelCase 的理解

select substr(lower('Camel Case means the first char should be lower cased'),1,1)||substr(replace(initcap('Camel Case means the first char should be lower cased'),' '),2) from dual;
camelCaseMeansTheFirstCharShouldBeLowerCased                                    
1 row selected.
于 2019-10-01T02:59:16.420 回答