我有一个表,其中“注释”字段的字符数不超过100个。我想将此字段分为20个字符,然后在每20个字符后添加一个定界符。该字段中的文本没有任何可使用的定界符。我可以使用子字符串在前20个字母中执行此操作,但对于其余字符则不行。有人可以建议执行此操作的SQL查询吗?
非常感谢 :)
尝试使用用户定义的功能
CREATE FUNCTION dbo.SplitBy(
@String varchar(max),
@Delimiter char(1)
)
returns varchar(max)
as
begin
declare @fldSize int
set @fldSize = 20
declare @TotalCnt int
set @TotalCnt = len(@String)
declare @c int
set @c = 1
declare @TS varchar(max)
set @TS = ''
if @TotalCnt > @fldSize begin
set @TS = substring(@String, @c, @fldSize)
set @c = @c + @fldSize
while @c < @TotalCnt begin
set @TS = @TS + @Delimiter + substring(@String, @c, @fldSize)
set @c = @c + @fldSize
end
if @c = @TotalCnt begin
set @TS = @TS + @Delimiter + substring(@String, @c, @TotalCnt-(@c-1))
end
return @TS
end
return @String
end
用法
update [YourTable] set fldToDelimit = dbo.SplitBy(fldToDelimit, '|')
希望这能帮助您!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句