JSONB列不存在

时间:2019-03-03 03:18:47

标签: sql postgresql postgresql-9.5

我收到此错误。

  

错误:第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值?

1 个答案:

答案 0 :(得分:0)

您要选择的JSON属性名称周围缺少引号。就像对象键必须在声明JSON对象时始终加引号一样,在访问它时也需要对其加引号。

有关the JSON datatypeJSON Functions and Operators的信息,请参见Postgres文档。

您需要更改此内容

SELECT JS, location, location->>Name

收件人:

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

Demo on DB Fiddle