Как исключить всю информацию о строке из вывода VSQL
Я использую VSQL для извлечения данных из таблицы в формате CSV с помощью этой команды:
vsql -h [адрес_хоста] -d [имя_базы_данных] -u [имя_пользователя] -w [пароль] -A -F, -t -f script_to_extract_data.sql -o output.csv
Однако он выводит заголовки столбцов, строки данных и дополнительную строку, которая указывает общее количество строк в таблице, например:
Geography,Product,Campaign,VariableName,Outlet,Creative,Period,VariableValue
Geo_00000,Product,BABY,web_sales,Total,Total,2016-10-03,24.06
Geo_00000,Product,BABY,web_sales,Total,Total,2016-10-08,67.17
Geo_00000,Product,BABY,web_sales,Total,Total,2016-10-17,404.67
(3 rows)
Если я исключу -t
вариант, он будет выводить только данные, как это:
Geo_00000,Product,BABY,web_sales,Total,Total,2016-10-03,24.06
Geo_00000,Product,BABY,web_sales,Total,Total,2016-10-08,67.17
Geo_00000,Product,BABY,web_sales,Total,Total,2016-10-17,404.67
Я хотел бы заголовки столбцов И данные, но не общее количество строк, как это:
Geography,Product,Campaign,VariableName,Outlet,Creative,Period,VariableValue
Geo_00000,Product,BABY,web_sales,Total,Total,2016-10-03,24.06
Geo_00000,Product,BABY,web_sales,Total,Total,2016-10-08,67.17
Geo_00000,Product,BABY,web_sales,Total,Total,2016-10-17,404.67
Прочитав параметры командной строки VSQL, я не думаю, что у меня есть способ ограничить общее количество не отображаемых строк?? Любой, кто имеет опыт использования VSQL через командную строку, может мне помочь, я был бы очень признателен за помощь. Спасибо!
2 ответа
Нет задокументированного способа сделать это.
Вы можете просто вставить выбор в ваш скрипт, хотя бы распечатать заголовок, оставив только кортежи включенными.
\t
\a
\f ,
\o output.csv
select 'Geography', 'Product', 'Campaign', 'VariableName', 'Outlet', 'Creative', 'Period', 'VariableValue';
select Geography, Product, Campaign, VariableName, Outlet, Creative, Period, VariableValue
from mytable;
\o
И я полагаю, что если вас действительно действительно беспокоит перечисление полей дважды, вы можете использовать переменную.
\set fields Geography,Product,Campaign,VariableName,Outlet,Creative,Period,VariableValue
Тогда ссылка :fields
в обоих запросах (просто используйте '
вокруг него для списка заголовков). В этом случае список заголовков просто должен быть строкой, а разделитель должен быть ,
так как это также будет использоваться в sql. Просто мысль.
Без -t
добавлять -P footer=off
... это даст вам заголовки без нижнего колонтитула, как вы хотите.
vsql -h [host_address] -p [port] -d [db_name] -u [user_name] -w [password] -AP footer=off -F , -f script_to_extract_data.sql -o output.csv