我有一张表x,它包含此列中的resource_name
列,我有像NASRI(SRI)这样的数据。
我在此列上应用了initcap,它提供了输出Nasri(sri)
。但我的预期输出是Nasri(Sri)
。
我如何才能达到预期的效果?
谢谢
答案 0 :(得分:0)
一种可能的解决方案是将split()
与concat_ws()
一起使用。如果value不包含'()',那么它将正常工作。使用()进行演示:
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)