#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 тысячах строк. Разделить его вручную было бы довольно большой работой.