如何从 JSON 字段中提取数据并过滤 NULL 值
从 JSON 字段中提取数据并过滤 NULL 值
您想从 PostgreSQL 数据库中的 JSON 字段中提取特定数据,并过滤掉值为 NULL 的数据,可以使用以下语句:
SELECT data_value::jsonb->>'accountName' AS accountName, data_value::jsonb->>'accountNumber' AS accountNumber
FROM t_access_itemdetail
WHERE data_value->>'accountName' IS NOT NULL AND data_value->>'accountNumber' IS NOT NULL;
解释:
data_value::jsonb->>'accountName': 使用::jsonb将data_value列转换为 JSONB 类型,然后使用->>运算符提取accountName字段的值。WHERE data_value->>'accountName' IS NOT NULL: 使用->>运算符获取accountName字段的值,并使用IS NOT NULL判断该值是否为空。AND data_value->>'accountNumber' IS NOT NULL: 同样使用->>获取accountNumber字段的值,并判断其是否为空。
注意:
- 以上语句假设
t_access_itemdetail表中的data_value列的数据类型为jsonb。如果data_value的数据类型是json,则需要将jsonb替换为json。 - 如果您的 JSON 字段名称包含特殊字符,请使用双引号将其括起来,例如:
data_value->>'"account-name"'。
示例:
假设 t_access_itemdetail 表中有一行数据,data_value 列的值为:
{"accountName": "John Doe", "accountNumber": "123456789"}
执行以上 SQL 语句后,将会返回以下结果:
| accountName | accountNumber | |---|---| | John Doe | 123456789 |
希望以上内容能帮助您解决问题。
原文地址: https://www.cveoy.top/t/topic/pVnw 著作权归作者所有。请勿转载和采集!