gpt4 book ai didi

string - SQL 服务器 : escape punctuation in string

转载 作者:行者123 更新时间:2023-12-04 17:49:20 28 4
gpt4 key购买 nike

我正在将数据从 SQL Server 表导出到 .csv 文件,然后我使用 sp_send_email 将数据通过电子邮件发送给该文件。

我的问题是这个值:

Cantata Number 212 "Peasants Cantata", BWV 212

该值在通过电子邮件发送的 .csv 文件中分为两列。此值应仅在一列中。

某些标题可能包含逗号,需要将其保留在这些实例的字符串中。

例如:

Cantata Number 212 Peasants Cantata"     BWV 212"

我试过这个方法,但是没有用:

注意:此SELECT 语句位于 View vw_WeeklyReport

SELECT TOP 100 PERCENT
'"' + [p].[Title] + '"' [Title]
FROM
table

导出数据并通过电子邮件发送 .csv 文件的代码:

BEGIN
SET NOCOUNT ON;

DECLARE @qry VARCHAR(8000);

-- Create the query, concatenating the column name as an alias
SET @Qry = 'SET NOCOUNT ON; SELECT Title FROM [vw_WeeklyReport] SET NOCOUNT OFF';

-- Send the e-mail with the query results in attachment.
EXEC [msdb].[dbo].[sp_send_dbmail]
@profile_name = 'default',
@recipients = '6lack@email.com',
@subject = 'Weekly Report',
@body = 'An attachment has been included in this email.',
@query_attachment_filename = 'WeeklyRep.csv',
@query = @qry,
@attach_query_result_as_file = 1,
@query_result_separator = ',',
@query_result_width = 32767,
@query_result_no_padding = 1;
END;

最佳答案

当字段中有逗号(或分隔符)时,该字段应该用双引号引起来,并且其中的任何双引号都必须用另一个双引号转义:

"Cantata Number 212 ""Peasants Cantata"", BWV 212"

一旦在字段周围使用了双引号,所有包含双引号的字段也应该被引用并且内引号也被转义。

也许您可以寻找使用引号字段导出到 csv 的选项。

删除所有逗号也是一种选择,但这样您会丢失一些信息。

另一方面,如果只有一列(如在您的 SELECT 语句中),则根本不需要使用 csv。可以改用纯文本文件。

关于string - SQL 服务器 : escape punctuation in string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46307811/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com