我正在尝试使用sqsh将一些数据从MsSQL导出到CSV文件。
假设SQL语句为SELECT * from [dbo].[searchengines]
。
生成的CSV就像这样,
field1,field2,field3,field4,field5
,,"Google",,
,,"Yahoo",,
,,"Altavista",,
,,"Lycos",,
我可以做些什么来使它成为这样的东西:
field1,field2,field3,field4,field5
NULL,NULL,"Google",NULL,NULL
NULL,NULL,"Yahoo",NULL,NULL
NULL,NULL,"Altavista",NULL,NULL
NULL,NULL,"Lycos",NULL,NULL
我基本上想要将空的字段更改为NULL。 有什么想法吗?
答案 0 :(得分:2)
不幸的是,可空列的csv输出中的空字符串在sqsh中是硬编码的。请参阅第144行上进行调用的src / dsp_csv.c:
dsp_col( output, "", 0 );
你可以用
替换它dsp_fputs( "NULL", output );
并重建sqsh。在下一个版本中,我将提出一个更精细的解决方案。