vertica提取json字段值

Posted 卡卡西村长的小灶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vertica提取json字段值相关的知识,希望对你有一定的参考价值。

json字符串的内容如下:

[{"stockName":"阳光照明","stockProfit":"5500.0000","stockCode":"600261"},{"stockName":"京 运 通","stockProfit":"6664.5000","stockCode":"601908"}]

 

通过regexp_substr和regexp_instr函数来提取stockcode字段值,返回前3个值。SQL如下:

select
  substr(regexp_substr(f1, stockCode":"(w)+), 13) as code1,
  (case when regexp_instr(f1, stockCode":"(w)+) > 0 then
    substr(regexp_substr(f1, stockCode":"(w)+, regexp_instr(f1, stockCode":"(w)+) + 1), 13) 
  else null end) as code2,
  (case when regexp_instr(f1, stockCode":"(w)+) > 0 and regexp_instr(f1, stockCode":"(w)+, regexp_instr(f1, stockCode":"(w)+) + 1) > 0 then
    substr(regexp_substr(f1, stockCode":"(w)+, regexp_instr(f1, stockCode":"(w)+, regexp_instr(f1, stockCode":"(w)+) + 1) + 1), 13)
  else null end) as code3
from t1

 

以上是关于vertica提取json字段值的主要内容,如果未能解决你的问题,请参考以下文章

从特定 JSON 字段中提取数据,将其用作变量,并更新字段值?

uniapp**字符串转Json并提取字段值

如何从 MySQL 中的数字键嵌套 JSON 字段中提取值

jmeter--正则提取json串中一个大括号对象里指定字段值的的另一个字段的值

Oracle 使用带有 oracle regexp_substr 的正则表达式提取 json 字段

sql 如何在SQL_vertica中提取部分日期