如何查看最后两个字符是hive中的数字?

时间:2016-09-09 15:21:52

标签: sql hive

在sql中我使用

regexp_instr(substr(trim(col),1,2),'^([0-9]){2}$') = 1

但我不确定如何在配置单元中查看此内容,我尝试regexp_extract而不是regexp_instr,但我只有最后一位数字。

2 个答案:

答案 0 :(得分:0)

我希望这样的事情可以发挥作用:

where col rlike '[0-9]{2}$'

您的代码有trim();您也可以在表达式中包含该逻辑:

where col rlike '[0-9]{2}[ ]*$'

我也会在原始系统中推荐这种简化的逻辑。

答案 1 :(得分:0)

substr(col,length(col)-1)返回最后两个字符

如果最后两个字符不是数字

cast(substr(col,length(col)-1) as int)将返回NULL

您可以查看case when cast(substr(col,length(col)-1) as int) is NULL/is not NULL then ...

的示例:

select substr('abcdef12',length('abcdef12')-1)返回12

cast(substr('abcdef12',length('abcdef12')-1) as int)返回12

cast(substr('abcdef1x',length('abcdef1x')-1) as int)返回NULL

如有必要,添加一个trim()