当我在交互模式下使用 sqsh 时,有时我喜欢以下列方式运行我的查询,以便可以在一个不错的 csv 文件中获取它:
1> 从 Blah=Blah 的表中选择 *
2> 去 -m bcp > /文件/名称/这里
我唯一的问题是使用“-m bcp”选项不会给我输出中的列名。知道如何以“干净”的方式获取这些列名吗?
sqsh里面有个CSV显示模式你试过了吗
尝试:
1> select * from Table where Blah=Blah
2> go -m csv > /file/name/here
除了csv
其他答案中提到的样式外,默认样式与(not )horiz
中的适当值相结合将产生带有列名的分离输出。colsep
bcp_colsep
1> \set colsep="|"
1> select * from Table where Blah=Blah
2> go
|heading1|heading2|
|--------|--------|
|row1 |col2 |
|row2 |col2 |
但是,列值被填充,并且还打印了第一列之前的标题下划线和初始列分隔符。例如,这些可以被剥离awk
。或许没有灵丹妙药……
作为列分隔符的制表符必须按字面意思插入CtrlV-Tab除非sqsh
正在使用最近的(来自此问题的信息:sqsh 样式“csv”有哪些选项(或无论如何要以制表符分隔))。