Forum: SQL |
Thema:
Re: sp while-schleife: variablen werden falsch belegt |
Von:
Berthold Neumann (
05.10.2004 10:03) |
Irgendwie scheinst du deine Pocedure immer wieder verschlimmbessert zu haben.
Du fragst len(@ingr) ab, obwohl die Länge immmer gleich bleibt und es tauchen Variblen auf,die man gar nicht braucht.
Deshalb ist es bessen den Code neu aufzusetzen:
DECLARE @ingr varchar(50)
DECLARE @start integer
set @ingr = 'aaa"bbb"ccc"ddd"'
set @start = 1
WHILE(LEN(@ingr) > 0)
BEGIN
SELECT substring(@ingr,1,CHARINDEX('"', @ingr)-1) AS Expr2, @start as start,@start + CHARINDEX('"', @ingr)-2 as 'end'
set @ingr = substring(@ingr,CHARINDEX('"', @ingr)+ 1,50)
set @start = @start + CHARINDEX('"', @ingr)
END
Mit etwas Mühe bekommst du es auch noch eleganter hin.
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!