2016-12-02 7 views
1

Я использую VSQL для извлечения данных из таблицы в формате CSV, используя эту команду:Как исключить общую информацию строки из вывода VSQL

vsql -h [host_address] -d [db_name] -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 commandline options, я не думаю, что у меня есть способ ограничить общее количество строк, которые не отображаются? Любой, кто имеет опыт использования VSQL через командную строку, может помочь мне, я был бы очень благодарен за помощь. Спасибо!

ответ

1

Нет документального способа сделать это.

Вы можете просто вставить свой скрипт, чтобы распечатать заголовок, оставив только кортежи.

\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. Просто мысль.

+0

Спасибо! Этот взлом добавления геометрии «SELECT», ... 'before - отличный способ обхода проблемы! :) – user1330974

+1

Нет проблем. Вы также можете просто перечислить поля в строках, которые могут быть лучше, если вы решите изменить разделитель в будущем. 'select 'Geography', 'Product' ...' На самом деле мне так нравится, поэтому я изменю свой ответ. – woot