问题描述
如何拆分句子并在一列中仅保留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