Reporting services SSR在导出到CSV时添加额外字符

Reporting services SSR在导出到CSV时添加额外字符,reporting-services,ssrs-2016,ssrs-2014,ssrs-2017,azure-sql-reporting,Reporting Services,Ssrs 2016,Ssrs 2014,Ssrs 2017,Azure Sql Reporting,我正在创建一个表达式,将SSRS中的多个字段组合成一个字段。但是,当我导出到CSV时,一些记录会附加双引号。我该如何解决这个问题 原始数据: SCode|BuildingNumber|StreetName|City|State| --------------------------------------------- ABC| |123 Street|New York |NY| DEF| |456 Street|Los Angeles|CA| IJK|123|7th Ave |

我正在创建一个表达式,将SSRS中的多个字段组合成一个字段。但是,当我导出到CSV时,一些记录会附加双引号。我该如何解决这个问题

原始数据:

SCode|BuildingNumber|StreetName|City|State|
---------------------------------------------
ABC|   |123 Street|New York   |NY|
DEF|   |456 Street|Los Angeles|CA|
IJK|123|7th Ave   |Chicago    |IL|
XYZ|   |789 Cir   |Atlanta    |GA|
我使用的表达方式:

=Fields!SCode.Value & "#" & IIF(IsNothing(Fields!BuildingNumber.Value), Fields!StreetName.Value, Fields!BuildingNumber.Value & "\," & Fields!StreetName.Value) & "#" & Fields!City.Value & "#" & Fields!State.Value"
导出到CSV后的数据:

ABC#123 Street#New York#NY
DEF#456 Street#Los Angeles#CA
"IJK#123, 7th Ave#Chicago#IL"
XYZ#789 Cir#Atlanta#GA

谢谢

如果有分隔符字符(逗号)或某种返回格式,CSV导出只应在字段周围添加文本分隔符

仅当值包含分隔符时,才会添加文本限定符 字符或当值有换行符时

检查文本中是否有逗号、返回字符和换行符

您的示例没有逗号,但可能仍有返回或换行符

SELECT * 
FROM TABLE 
WHERE FIELD LIKE '%' + CHAR(13) + '%'
    OR FIELD LIKE '%' + CHAR(10) + '%'

换行符和返回符是中的字符号10和13。

感谢您指出这一点。我已经用正确的数据和我正在使用的表达式更新了我的原始帖子。在导出到CSV时,我仍然看到用双引号括起来的记录。@Julaayi-带引号的行中有一个逗号。添加了文本限定符引号,因此文本中的逗号不会被解释为分栏符。你需要替换逗号,但是无论你将CSV导入到什么地方,都应该能够读取它。我不确定我是否理解你的意思。我在SSRS表达式中将两个字段合并为一个字段,并使用逗号作为分隔符。如果其中一个字段为空,我只取非空字段,但当两个字段都有值时,我用逗号分隔它们。当我将报告导出到CSV时,它会为带有逗号的记录添加双引号。我试过逃跑这个角色,但没有成功。如果你想让我提供任何其他信息,请告诉我。谢谢添加引号是因为芝加哥的数据中有逗号,而其他数据中没有逗号<代码>“IJK#123,7thAve#芝加哥#IL”在
123
后面有一个逗号。我不确定这个表达式是否正确-您的数据中没有一个是斜杠,只有一个是逗号。如果混淆了,我很抱歉。斜杠只有在有斜杠的情况下才会被替换,我认为这不是问题所在。当我在建筑编号和街道名称后面加上逗号时。发布的数据是在导出到CSV后发布的。如果这不合理,请告诉我。