sql - 提取键值对并组成自己的列
问题描述
我有一个包含两列的表——其中一列包含许多键值对。我想解压缩此列,以便其中的每个键成为一个新列,并且相应键的每个值都成为该新列的行。
例如,假设我有一个包含两列的表id
和vars
id = 123456789
vars =
{
"var_1": 11,
"var_2": 123,
"var_3": 81,
"var_4": 9,
"var_5": 0,
"var_6": 0.3888,
"var_7": 0.11,
"var_8": 19,
"var_9": 25,
"var_10": 29,
"var_11": 0,
"var_12": 1
}
vars
类型在哪里row
。我想将列中的所有键值对提取vars
到自己的列中?我可以使用如下代码单独遍历键值对:
select
id,
vars.var_1 as var_1,
vars.var_2 as var_2,
vars.var_3 as var_3
...
...
...
from table_name
但我怀疑有一种方法可以通过函数自动执行此操作。有人知道吗?
我正在使用 Presto。
解决方案
推荐阅读
- python - 不了解 CUDA 资源并不断耗尽内存
- c# - 是否可以让通用子类在 c# 中看到相同变量的不同接口
- java - 我们可以使用 rest api 更新 sharepoint 中的文档吗?
- shell - 将文件中的几列grep到shell中的另一个文件
- python - 基于python中的时间戳列连接两个数据帧
- reactjs - 切换多个密码输入的密码可见性
- go - 如何使用 cobra 实现多个选项
- ios - 如何在 iOS Swift 的 avaudioplayer 中播放数据中的音频?
- sql-server - 如何在 IIS 上将事务隔离级别更改为 READ COMMITTED
- c++ - 如何正确地将在类的重载运算符中生成的分配数组传递给该类的另一个实例?