我有一个错误报告,其中包含一个简单查询输出到.csv平面文件。生成的最后一列是nvarchar(1000),其中包含通常在文本内包含CR / LF的注释。当您在Excel中打开.csv时,这些CR / LF会触发新列,因此第6列的一半注释会在第一列的下一行结束。
当我在SSMS中运行查询时,我有一个查询选项以“在复制或保存时保留CR / LF”。如果我使用此选项将查询结果直接复制到Excel,则会重新创建问题。如果删除此选项,则结果不会中断。这就是我想要的SSIS包。
默认情况下,SSIS在保存时保留CR / FL,我找不到任何选项可以将其关闭。谁能指出我正确的方向?
答案 0 :(得分:2)
我不知道是否可以在查询本身中处理此问题,但是如果可以,您可以尝试使用REPLACE
删除CRLF:
SELECT
col_first,
col_second,
...
REPLACE(REPLACE(col_last, CHAR(13), ''), CHAR(10), '') AS col_last
FROM yourTable;