有没有一种方法可以将字符串(从特定列)拆分为n个字符,而又不打断单词,每个结果都在自己的行中?
例子:
2012-04-24 Change request #3 for the contract per terms and conditions and per John Smith in the PSO department Customer states terms should be Net 60 not Net 30. Please review signed contract for this information.
结果:
我知道我可以charindex用来找到最后一个空间,但是我不确定如何获取剩余的空间并将其作为行返回。
charindex
尝试这样的事情。可能是您可以创建以下实现的SQL函数。
DECLARE @Str VARCHAR(1000) SET @Str = '2012-04-24 Change request #3 for the contract per terms and conditions and per John Smith in the PSO department Customer states terms should be Net 60 not Net 30. Please review signed contract for this information.' DECLARE @End INT DECLARE @Split INT SET @Split = 100 declare @SomeTable table ( Content varchar(3000) ) WHILE (LEN(@Str) > 0) BEGIN IF (LEN(@Str) > @Split) BEGIN SET @End = LEN(LEFT(@Str, @Split)) - CHARINDEX(' ', REVERSE(LEFT(@Str, @Split))) INSERT INTO @SomeTable VALUES (RTRIM(LTRIM(LEFT(LEFT(@Str, @Split), @End)))) SET @Str = SUBSTRING(@Str, @End + 1, LEN(@Str)) END ELSE BEGIN INSERT INTO @SomeTable VALUES (RTRIM(LTRIM(@Str))) SET @Str = '' END END SELECT * FROM @SomeTable
输出将是这样的: