如何在SQL Server中的一定数量的字符后截断结果

我想在32759个字符后截断结果,因为这是excel中的字符限制,这就是我的结果将被粘贴的地方。

目前为止我尝试过的两种方法:

CONVERT(varchar(max), substring(comment,1,37259)) as [Comment] CONVERT(varchar(max), ( substring(comment,1,8000) + substring(comment,8001,16000)...)) as [comment] 

编辑:好像数据没有进入varchar(max),因为它返回的结果只有8000个字符。 这是select语句的一部分。 我在32759个字符中得到结果没有任何问题,只是当他们粘贴到excel中时,它们会进入下一行 – 这就是为什么我要截断的原因。

所有这些东西都不是必须的。 如果commentvarchar(max) ,你应该能够说:

 SUBSTRING(comment, 1, 37259) 

如果是textntext那么你需要先转换它:

 SUBSTRING(CONVERT(VARCHAR(MAX), comment), 1, 37259) 

(这显然比你的解决scheme更加整洁。)

算出来,不妨折腾一下,以防其他人遇到这个问题:

 convert(varchar(max), ( cast(substring(comment,1,8000) as varchar(max)) + cast(substring(comment,8001,8000) as varchar(max)) + cast(substring(comment,16002,8000) as varchar(max)) + cast(substring(comment,24003,8000) as varchar(max)) + cast(substring(comment,32004,755) as varchar(max)) )) as [comment] 

它看起来像不是每个部分的数据大小被设置为一个数据大小/types,将容纳所有的作品。