PrestoSQL · 2023年11月20日 0

常用函数

主要可以参考官方的文档

JSON数据

JSON作为一种数据类型,首先可以使用cast函数和其他数据类型进行相互转换

-- 其他数据类型转换成JSON格式
SELECT CAST(1 AS JSON); -- 从integer的1变成JSON 1
SELECT CAST(ARRAY[ARRAY[1, 23], ARRAY[456]] AS JSON); -- JSON '[[1,23],[456]]'
-- JSON格式转换成其他类型
SELECT CAST(JSON '9223372036854775807' AS BIGINT); -- 9223372036854775807
SELECT CAST(JSON '{"k1":1,"k2":23,"k3":456}' AS MAP(VARCHAR, INTEGER)); -- {k1=1, k2=23, k3=456}
SELECT CAST(JSON '[[1,23],[456]]' AS ARRAY(ARRAY(INTEGER))); -- [[1, 23], [456]]
SELECT CAST(JSON '{"v1":123,"v2":"abc","v3":true}' AS ROW(v1 BIGINT, v2 VARCHAR, v3 BOOLEAN)); -- {v1=123, v2=abc, v3=true}m

is_json_scalar(json)->boolean

判断参数是不是基础数据类型,比如integer,string,true,false,null

json_array_contains(json, value)->boolean

判断json中是否包含value

json_array_get(json_array,index)->json

从json数组中获取指定的元素,注意参数要是一个json数组,也就是[]的格式

json_array_length(json)->bigint

json数组的长度

json_extract(json, json_path)->json

从一个大json中提取部份字段,这里使用的json_path可以参考介绍文档