create proc SplitStr
@AccountString varchar(max), --需要截取的字符串
@SplitChar varchar(10) --要截取的分隔符
as
begin
declare @Account varchar(200) --截取后的字符
declare @SplitCharPos int --记录截取位置
set @SplitCharPos = 0; --初始截取位置为0
--declare @TotalCount int
--set @TotalCount = 0
select @SplitCharPos = CHARINDEX(@SplitChar, @AccountString) --第一次出现的位置
if @SplitCharPos = 0 --如果第一次出现位置为0
begin
select @Account = @AccountString --原字符串等于截取后的字符
select @Account as Account --查出要截取的字符
end
else
begin
while @SplitCharPos <> 0 --直到出现的位置不为0
begin
select @SplitCharPos = CHARINDEX(@SplitChar, @AccountString)
if @SplitCharPos = 0
begin
select @Account = @AccountString
end
else
begin
select @Account = LEFT(@AccountString, @SplitCharPos - 1)
select @AccountString = RIGHT(@AccountString, len(@AccountString)-len(@Account) - 1)
end
--要对截取的每个字符进一步操作写在此
--select @TotalCount = @TotalCount + count(*) from dbo.Tuser where username like '%' + @Account + '%'
end
--select @TotalCount as 访问数
end
endsql存储过程版Split(字符串截取)
最新推荐文章于 2024-07-15 09:46:01 发布
本文介绍了一个SQL存储过程,用于将一个包含特定分隔符的大字符串拆分成多个子字符串。该过程通过定位分隔符的位置来逐个提取子字符串,并演示了如何使用T-SQL的内置函数CHARINDEX进行字符串操作。
1775

被折叠的 条评论
为什么被折叠?



