You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Oracle的JSON列中获取唯一的JSON键?

提取所有唯一JSON键的SQL方案

针对不同主流数据库,提供对应的SQL语句来提取my_table表中JSON_COLUMN列里所有唯一的JSON键:

MySQL(5.7及以上版本)

利用JSON_KEYS获取每行的JSON键数组,再通过JSON_TABLE将数组拆分为行,最后去重:

SELECT DISTINCT json_key
FROM my_table,
     JSON_TABLE(
         JSON_KEYS(JSON_COLUMN),
         '$[*]' COLUMNS(json_key VARCHAR(255) PATH '$')
     ) AS keys_table;

PostgreSQL(9.4及以上版本)

使用json_object_keys(或jsonb_object_keys,针对jsonb类型更高效)直接拆分JSON键为行,再去重:

SELECT DISTINCT key
FROM my_table,
     json_object_keys(JSON_COLUMN) AS key;

-- 若JSON_COLUMN为jsonb类型,改用以下语句:
-- SELECT DISTINCT key FROM my_table, jsonb_object_keys(JSON_COLUMN) AS key;

SQL Server(2016及以上版本)

通过OPENJSON解析JSON对象,返回包含键的结果集,再通过CROSS APPLY关联每行数据并去重:

SELECT DISTINCT [key]
FROM my_table
CROSS APPLY OPENJSON(JSON_COLUMN);

性能提示

对于百万级数据量,建议优先使用数据库原生优化的JSON类型(如MySQL的json、PostgreSQL的jsonb),若数据量过大可考虑分批查询或借助临时表提升效率。

内容的提问来源于stack exchange,提问作者Dante

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:35:30