Om du har and/or så går det inte på något annat sätt. Om du ändå skall bygga strängar kan du lika gärna göra det i något språk som har bättre stöd för stränghantering än vad T-SQL har.
Hej!
Jag har blivit varnad på detta forum tidigare för att använda strängar i Lagrade Procedurer.
Problemet är att det är himla enkelt om jag vill skicka in ett eller flera värden in i SP:n.
Hur ska man göra istället?
ex. denna parameter sFM tar ett eller flera val med (or/and), hur ska man lösa det utan att bygga strängar i SP:n?
if @sFM <> ''
begin
set @CommaWk = 0
set @SQLString = @SQLString + N'and ('
select @iCommaAt = CHARINDEX(',', @sFM)
while @iCommaAt > 0
begin
if @CommaWk > 0 set @SQLString = @SQLString + N'or '
if substring(@sFM, 1, @iCommaAt - 1) > ''
begin
set @CommaWk = @CommaWk + 1
set @SQLString = @SQLString + 'sTest.sFM = ' + substring(@sFM, 1, @iCommaAt - 1)
end
select @sFM = substring(@sFM, @iCommaAt + 1, 255)
select @iCommaAt = charindex(',', @sFM)
end