hive []里的字段计数问题

hive []里的字段计数问题@TOC

欢迎使用Markdown编辑器

例如有下面一个字段,需要计算[]中的数字个数
string1
[]
[9005]
[9005,9006]
[9005,9001,9002,9008,9007,9004,9007,9003]
[9004,9002]

看到这个问题,第一想法是计算[]中,的个数,这时可以用instr函数。

但是这个问题主要需要解决的是为空和1个数字的问题,可以使用下面这种方法:

SELECT
case
when length(ext[‘string1’])=2 then 0
when length(ext[‘string1’])=6 then 1
else length(ext[‘string1’])-length(replace(ext[‘string1’],’,’,’’))+1 end string1
from table ;

把逗号用空格替换以后,计算字符个数,通过字符个数来计算数字的个数。


版权声明:本文为zhouqi1991i原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。