{ "product_level": "A3", "grantcredit_28d_amount": 400000, "risk_level": "A", "grantcredit_30d_amount": 400000, "mid_rand_flow": 1, "pvalue_sd_rh_p1": 0.14455552872542543, "new_grade_level": "3", "model_score": 5, "credit_amount": 400000, "credit_asset_quality": "A" } 上面的这段json存在于PG库的一个名字为 grantcredit_info 字段中,我需要单独解析出来该json字段中的 grantcredit_30d_amount 值,并转化为 bigint 类型 表名为os_credit_snapshot 这段解析json字段取值的sql你写一下 用json_extract_path函数 或者json_array_elements函数完成解析
时间: 2023-07-19 17:07:46 浏览: 133
可以使用 `json_extract_path` 函数来解析该 JSON 字段,并取出 `grantcredit_30d_amount` 值。下面是 SQL 语句:
```sql
SELECT CAST(json_extract_path(grantcredit_info, 'grantcredit_30d_amount') AS BIGINT)
FROM os_credit_snapshot;
```
其中,`json_extract_path` 函数的第一个参数为待解析的 JSON 字段,第二个参数为要取出的字段名。`CAST` 函数用于将字符串类型转化为 bigint 类型。
相关问题
{ "product_level": "A3", "grantcredit_28d_amount": 400000, "risk_level": "A", "grantcredit_30d_amount": 400000, "mid_rand_flow": 1, "pvalue_sd_rh_p1": 0.14455552872542543, "new_grade_level": "3", "model_score": 5, "credit_amount": 400000, "credit_asset_quality": "A" } 上面的这段json存在于PG库的一个名字为 grantcredit_info 字段中,我需要单独解析出来该json字段中的 grantcredit_30d_amount 值,并转化为 bigint 类型 表名为os_credit_snapshot 这段解析json字段取值的sql你写一下
可以使用PostgreSQL提供的JSON函数来解析JSON字段中的值,具体的SQL语句如下:
```
SELECT (grantcredit_info ->> 'grantcredit_30d_amount')::BIGINT
FROM os_credit_snapshot;
```
其中,`grantcredit_info` 是JSON字段名,`'grantcredit_30d_amount'` 是要取出的键名,`::BIGINT` 是将取出的字符串转换为bigint类型。
阅读全文