导出到csv空字符串为NULL

时间:2014-07-01 07:54:54

标签: csv null string sqsh

我正在尝试使用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。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

不幸的是,可空列的csv输出中的空字符串在sqsh中是硬编码的。请参阅第144行上进行调用的src / dsp_csv.c:

dsp_col( output, "", 0 );

你可以用

替换它
dsp_fputs( "NULL", output );

并重建sqsh。在下一个版本中,我将提出一个更精细的解决方案。