检查蜂巢中特定位置的特定值
Posted
技术标签:
【中文标题】检查蜂巢中特定位置的特定值【英文标题】:Check for specific value in specific position in hive 【发布时间】:2020-06-18 19:29:23 【问题描述】:在 Hive 中,尝试围绕以下条件检查构建逻辑,但无法为其提供解决方案。
条件是如果字符串的第一个位置以 9 开头并且在第 4 个位置有 7 或 8,则仅显示最后四位数字,否则返回所有 9 位数字。如何完成解决方案?
Input Output
---------------------
912345678 912345678
912756431 6431
912854321 4321
123456789 123456789
【问题讨论】:
【参考方案1】:使用substr
函数:
select case when substr(Input,1,1)=9 and substr(Input,4,1) in (7,8) then substr(Input,-4) else Input end as Output
from ...
使用rlike
:
select case when Input rlike '^9\\d2[78]' then substr(Input,-4) else Input end as Output
【讨论】:
以上是关于检查蜂巢中特定位置的特定值的主要内容,如果未能解决你的问题,请参考以下文章