我有一个表x,它包含本专栏中的列resource_name,我有像NASRI(SRI)这样的数据。我在这个专栏上应用initcap,它给出了输出Nasri(sri)。但我的预期输出是Nasri(Sri)。我怎样才能达到预期的结果?
谢谢
发布于 2018-01-24 07:54:07
一个可能的解决方案是将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)https://stackoverflow.com/questions/48415375
复制相似问题