日期:2014-05-17  浏览次数:20602 次

sql2005中substring的length长度有限制如何解决?
通过substring来截取字符串,发现length的最大值只能有4000,超过4000的字符串的字符串就不会被截取到,有没有什么替代方法呢?
declare @ss varchar(max)
select @ss=substring(Content,5179,4100) from SL_Article where articleId=155
print len(@ss)

其中需要的100个字符串就不会被截取到
------最佳解决方案--------------------
declare @ss varchar(max)
 select @ss=substring(Content,5179,4000)+substring(Content,9179,100) from SL_Article where articleId=155
 print len(@ss)
------其他解决方案--------------------
莫非是sqlserver的bug,sqlserver帮助文档中都说length 可以是 bigint 类型。

expression 

是字符串、二进制字符串、文本、图像、列或包含列的表达式。不要使用包含聚合函数的表达式。

start 

指定子字符串开始位置的整数。start 可以为 bigint 类型。

length 

一个正整数,指定要返回的 expression 的字符数或字节数。如果 length 为负,则会返回错误。length 可以是 bigint 类型。


------其他解决方案--------------------
上面的方法还是不行