如何在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中时,它们会进入下一行 – 这就是为什么我要截断的原因。
所有这些东西都不是必须的。 如果comment
是varchar(max)
,你应该能够说:
SUBSTRING(comment, 1, 37259)
如果是text
或ntext
那么你需要先转换它:
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,将容纳所有的作品。