2016-08-10 3 views
0

Я новичок в PostgreSQl, так что, возможно, это основной вопрос: У меня есть таблица с полем типа текста текста [], то есть массив текстовых строк. Эта команда SQLPostgreSQL: запрос, который разбивает массив на элементы

Select "Table"."Field" From "Table"; 

возвращает значения в виде массивов, например. {AA, BB} и {AA, CC}.

Теперь я использую редактор SQL в pgAdmin, пытаясь написать команду SQL, которая выберет значения и разделит их на отдельные элементы. Я пробовал такую ​​конструкцию, как

Select "Table"."Field[1]", "Table"."Field[2]" From "Table"; 

но не работает. Что мне делать вместо этого?

ответ

0

посмотреть пример:

создать таблицу:

CREATE TABLE array_tab ( ar text[]) 

вставки даты пример:

insert into array_tab (ar) select string_to_array('aa~^~bb~^~cc', '~^~') 

выберите дату, что вам нужно:

select ar[1],ar[2],ar[3] from array_tab ; 
0

двойные кавычки " окружают имена объектов. Ваша ошибка состоит в том, чтобы поместить квадратные скобки внутри двойных кавычек, поэтому PostgreSQL ищет поле таблицы, которое называется Field[1] istead первого элемента поля Field.

Вы должны написать:

SELECT "Table"."Field"[1] 

Я очень рекомендую, что вы ничего, кроме нижнего регистра, цифры и подчеркивания _ в именах таблиц не использовать. Это делает жизнь намного проще, потому что вы избегаете всех проблем с цитированием.

Смежные вопросы