需要打印出SQL varchar(7900)
数据。它无法填写一页。
如何将其分解为两页而不会断言。
我无法使用substring(FieldA, 1, 3000)
和下一页substring(FieldA, 3001, 6000)
,因为工作例如" BOOK"可能会打破" B"作为3000位置的最后一个字母," OOK"显示在下一页。
答案 0 :(得分:0)
试试这个:
DECLARE @L INT;
DECLARE @str varchar(8000);
SELECT @str=FieldA FROM your_table WHERE ....
SET @L = 1;
IF LEN(@STR)>3000 SET @L=3000;
WHILE @L>2000 AND SUBSTRING (@str, @l, 1) LIKE '[A-Z]'
SET @L=@L-1;
IF @L>1 BEGIN
PRINT SUBSTRING(@str, 1, @L);
PRINT SUBSTRING(@str, @L, LEN(@str)-@L);
END
ELSE
PRINT @str;
答案 1 :(得分:0)
我认为你可以使用:
SUBSTRING(FieldA, 1, CHARINDEX(' ', FieldA, 2995))