如何解决结果集列返回超过 4000 个字符的 MS SQL 问题
select top 500 ID,(DATA1+DATA2) as DATA
from TABLE1
DATA1 有 3000 个字符,DATA2 有 4000 个字符
预期输出 DATA1+DATA2 = 7000 个字符
当前结果是 DATA1+DATA2 = 4000 个字符
解决方法
最有可能的罪魁祸首是您的字段的数据类型。您很可能将 NVARCHAR(4000)
作为类型,它会截断 4000 个字符后的任何内容。您需要使用 NVARCHAR(MAX)
来获得所需的输出。这可以在表级别或通过强制转换来完成
DECLARE @table TABLE (
ID int,DATA1 NVARCHAR(4000),DATA2 NVARCHAR(4000),DATA3 NVARCHAR(MAX),DATA4 NVARCHAR(MAX)
)
INSERT INTO @table
values
(1,REPLICATE('X',4000),3000),3000))
SELECT
LEN(DATA1 + DATA2),-- will be not 7000 due to 4000 char limit
LEN(CAST(DATA1 AS NVARCHAR(MAX)) + CAST(DATA2 AS NVARCHAR(MAX))),-- will be 7000 due to new type
LEN(DATA3 + DATA4) -- will be 7000 due to fields already have the max type
FROM @table
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。