如何拆分句子并在一列中仅保留15个或更少不超过15个字符,但最后可能是一个完整的单词

问题描述

如何拆分句子并在一列中仅保留15个或更少(不超过15个)字符,但这可能是一个完整的单词。

示例:Ali,House Number ABC/123,Sattelite Town,Lahore.

Column 01           Column 02           Column 03           Column 04
Ali,House          NumberABC/123,Lahore.

这里需要支持

解决方法

您可以尝试以下操作:

DECLARE @Str VARCHAR(100) = 'Ali,House Number ABC/123,Sattelite Town,Lahore.'

SELECT LEFT(LEFT(@Str,15),15 - CHARINDEX(' ',REVERSE(LEFT(@Str,15))) )
,

改进@ M.Ali解决方案:

declare @Str varchar(100) =
    'Ali,House NumberABC/123,Lahore.',@bit varchar(16)
declare @tb table (split varchar(15))

set @Str += ' '
while rtrim(@Str)>''
begin
    select  @bit = rtrim(left(left(@Str,16),16 - charindex(' ',reverse(left(@Str,16))))),@Str = ltrim(substring(@str,len(@bit) + 1,100))
    insert into @tb values (@bit)
end
select * from @tb