检查蜂巢中特定位置的特定值

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

【讨论】:

以上是关于检查蜂巢中特定位置的特定值的主要内容,如果未能解决你的问题,请参考以下文章

蜂巢中的数据集大小是多少

如何检查图像是不是存在于特定位置?

如何检查指南针航向是不是指向特定位置?

如何检查点击是不是发生在特定位置

Actionscript 2 - 如何检查电影剪辑是不是存在于舞台的特定位置?

如何从 Firebase Android Query 中的 StartAt 特定位置和 EndAt 特定位置获取值