1

我正在尝试使用 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。任何想法?

4

1 回答 1

2

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

dsp_col( output, "", 0 );

您可以将其替换为

dsp_fputs( "NULL", output );

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

于 2014-07-02T15:38:04.907 回答