JSONB列不存在

问题描述 投票:0回答:1

我收到了这个错误。

错误:列“名称”不存在第6行:

SELECT JS, location, location->>Name

                              ^ SQL state: 42703 Character: 278

从这个查询

WITH JsonTable AS
(
    SELECT 
    '[
        {
            "Id":1,
            "Name":"A01",
            "Address":"aaa",
            "SearchVector":null,
            "ParentLocationId":null
        },
        {
            "Id":4,
            "Name":"B-01",
            "Address":"bbb",
            "SearchVector":null,
            "ParentLocationId":null
        }
    ]'::jsonb AS JS
) 
SELECT JS, location, location->>Name
FROM JsonTable, jsonb_array_elements(JS) x (location)

如何选择JSON值?

sql postgresql postgresql-9.5
1个回答
0
投票

您缺少要选择的JSON属性名称的引号。只是喜欢在声明JSON对象时必须始终引用对象键,在访问它时也需要引用它们。

有关the JSON datatypeJSON Functions and Operators的文章,请参阅Postgres文档。

你需要改变这个:

SELECT JS, location, location->>Name

至:

SELECT JS, location, location->>'Name'

Demo on DB Fiddle

© www.soinside.com 2019 - 2024. All rights reserved.