Столбец JSONB не существует - PullRequest
0 голосов
/ 03 марта 2019

Я получил эту ошибку.

ОШИБКА: столбец "имя" не существует ЛИНИЯ 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 голосов
/ 03 марта 2019

Вам не хватает кавычек вокруг имени атрибута JSON, который вы хотите выбрать.Просто, как объектные ключи всегда должны быть заключены в кавычки при объявлении объекта JSON, они также должны быть заключены в кавычки при обращении к нему

См. Документацию Postgres для типов данных JSON и Функции и операторы JSON .

Вам необходимо изменить это:

SELECT JS, location, location->>Name

Кому:

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

Демонстрация по DB Fiddle .

...