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 ;

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

你可能感兴趣的:(sql)