#xml #postgresql #function
Вопрос:
У меня есть данные в виде xml-файла, поэтому первый шаг-преобразовать их в столбцы, а затем использовать эти столбцы в моем запросе select.
оба шага должны выполняться внутри одной и той же функции ( преобразование XML в столбцы, SQL-запрос).
name_a := (select name from(SELECT unnest (xpath(' //name/text()',
xml_string))::text as name)as foo))
return query select * from table1 inner join table2 on table2.name in (name_a)
Ответ №1:
Было бы лучше не использовать переменную, а поместить подзапрос непосредственно в IN
предложение в конечном операторе.
Если вы хотите использовать переменную, это должна быть переменная массива. Либо не unnest
используйте use array_agg
для преобразования его обратно в массив.
Затем этот массив можно использовать следующим образом:
... WHERE table2.name = ANY (array_var)