sql - 蜂巢:一列中的多个字符串替换
问题描述
使用如下函数可以很容易地替换一个字符:
regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT)
但是如何一次处理一列中的多个字符串替换呢?
例如,对于 A 到 @、B 到 #、C 到 Z 等关系,如何将其"ABC"
变为"@#Z"
?
解决方案
使用translate(input, from, to)函数,它通过将 from 字符串中存在的字符替换为 to 字符串中的相应字符来翻译输入字符串:
hive> select translate('initial string ABC A B C','ABC','@#Z');
OK
initial string @#Z @ # Z
Time taken: 0.063 seconds, Fetched: 1 row(s)
推荐阅读
- javascript - 在 react-bootstrap-table2 的自定义位置显示选择过滤器
- java - 是否有任何可用于日期格式的默认 Hibernate 验证器?
- android - 尝试使用 ViewModel 从后端获取数据但得到 IllegalArgumentException: Missing public, default no-argument constructor
- android - 将图像存储在 Realm 数据库中以反应本机
- javascript - Pass JavaScript object to controller
- c# - C# Net Core:在 API 中启用 Cors 后,仍处于 CORS 策略阻止状态
- ios - 将浮点数限制为小数点后两位,并为 Swift 中的数字提供逗号分隔格式
- ios - 使用 Swift 4 解码嵌套 JSON 只返回一个对象
- javascript - 如何通过按键访问 keyup 中的事件
- r - 分别给出月份和年份时的ggplot直方图