我需要使用 while 循环获取 $ 符号
declare @str varchar(100) = 'xyz1abc$xyz2abc$'
declare @int int = charindex('$',@str)
while (@int > 0)
begin
select @str = SUBSTRING(@str,@int,1)
select @int = charindex('$',@str)
end
select @str
它正在得到无限循环
无限循环的原因是@int开始并大于 0,然后永远不会更改,因此此条件永远不会为假:
while (@int > 0)
我不确定您的代码的目标是找到所有$s并返回它们的位置,还是找到第二个 $,或者其他什么。