Вывод из нескольких запросов в один файл с помощью postgresql

#sql #postgresql

Вопрос:

У меня есть csv-файл с несколькими строками, содержащими инструкции select, которые я хотел бы выполнить, а затем сохранить все результаты в один файл.

Каждая строка в csv выглядит примерно так:

 SELECT 'somehardcodedname' AS name,age FROM account WHERE id='somehardcodedid';  

Я попытался выполнить следующую команду:

 o output.csv i input.csv  

Это создает файл, но файл вроде как бесполезен, так как я получаю имена таблиц и количество строк до/после каждого результата, а структура таблицы в csv становится уродливой(вроде как таблица в таблице).

Есть ли какой-либо способ изменить команду, чтобы все результаты отдельных запросов select были объединены в один результат, который сохраняется в файле? Файл input.csv содержит несколько тысяч строк, поэтому я не могу объединить их в один запрос.

Комментарии:

1. Удалите точку с запятой и добавьте union all в конце каждой строки input.csv , кроме последней.

2. Могло бы сработать, если бы мой входной csv был меньше, но я получаю ОШИБКУ: предел глубины стека превышен, когда я пытаюсь это сделать.

3. Если это одноразовая работа, то почему бы не разделить ее на несколько частей и не объединить результаты?

4. Если в файле есть только один столбец, это едва ли файл CSV, ИМХО.

5. Это одноразовая работа, но csv огромен, мы говорим о 30 тысячах строк. Разделить его вручную было бы довольно большой работой.