词的初始值

Initcap of word

我有一个 table x 它包含此列中的列 resource_name 我有像 NASRI(SRI) 这样的数据。 我在此专栏上应用了 initcap,它给出了输出 Nasri(sri)。但我的预期输出是 Nasri(Sri)。 我怎样才能达到预期的效果?

谢谢

一种可能的解决方案是将 split()concat_ws() 一起使用。如果值不包含'()',那么它也能正常工作。演示 ():

hive> select  concat_ws('(',initcap(split('NASRI(SRI)','\(')[0]), 
                            initcap(split('NASRI(SRI)','\(')[1])
                       );
OK
Nasri(Sri)
Time taken: 0.974 seconds, Fetched: 1 row(s)

对于没有 () 的值,它也很好用:

hive> select concat_ws('(',initcap(split('NASRI','\(')[0]),
                           initcap(split('NASRI','\(')[1])
                      );
OK
Nasri
Time taken: 0.697 seconds, Fetched: 1 row(s)