Presto提取json字符串
时间: 2023-09-09 13:13:40 浏览: 74
在Presto中,可以使用JSON functions提供的json_extract函数来提取JSON字符串中的数据。json_extract函数的语法如下:
```sql
json_extract(json, json_path)
```
其中,json为要提取数据的JSON字符串,json_path为JSON路径表达式,用于指定要提取的数据。
例如,假设有如下JSON字符串:
```json
{
"id": 1,
"name": "Alice",
"scores": [90, 85, 95],
"address": {
"city": "Beijing",
"street": "Chaoyang Road"
}
}
```
要提取其中的"name"和"street"字段,可以使用以下语句:
```sql
SELECT json_extract(json, '$.name'), json_extract(json, '$.address.street') FROM table_name
```
这个语句会将"name"和"street"字段的值提取出来,结果如下:
```
name | _col1
------+-------------
Alice | Chaoyang Road
```
需要注意的是,json_path表达式需要符合JSONPath语法规范,否则会导致提取失败。同时,如果json_path表达式指定的数据不存在,json_extract函数会返回NULL。
相关问题
Presto提取json字符串里面的值
Presto是一个分布式 SQL 查询引擎,它支持从各种数据源中提取数据。要从JSON字符串中提取值,需要使用Presto中提供的JSON函数。
假设有一个包含JSON数据的Presto表,其中有一个名为"json_data"的列包含JSON字符串。要提取JSON字符串中的特定值,可以使用以下查询:
```
SELECT json_extract(json_data, '$.key') FROM table_name;
```
其中,json_extract是Presto中的JSON函数,第一个参数是JSON字符串,第二个参数是JSON路径,用于指定要提取的值。在这个例子中,$.key指的是JSON字符串中包含的key属性的值。
如果要提取JSON字符串中的多个值,可以在SELECT子句中使用多个json_extract函数。例如:
```
SELECT json_extract(json_data, '$.key1'), json_extract(json_data, '$.key2') FROM table_name;
```
这将返回两个列,分别包含JSON字符串中key1和key2属性的值。
presto如何判断字符串是不是数字
Presto可以使用函数TRY_CAST来将字符串转换为数字类型,如果转换成功则说明该字符串是数字,否则不是数字。例如:
SELECT TRY_CAST('123' AS INTEGER);
如果返回结果为123,则说明该字符串是数字。如果返回结果为NULL,则说明该字符串不是数字。