U kunt greate een functie de lijst in een lijst van gehelen omzetten gebruikt dan de functie in uw vraag
Iets als
CRE�ëR FUNCTIE [dbo]. [GET_INT_TABLE]
(
@STRINPUT (MAXIMUM) VARCHAR
)
KEERT @INTTABLE LIJST TERUG
(
WAARDE INT.
)
ZOALS
BEGIN
VERKLAAR @insertvalue varchar (32)
VERKLAAR @POS INT.
VERKLAAR @NEXTPOS INT.
VERKLAAR @VALUELEN INT.
SELECTEER @pos = 0, @nextpos = 1
TERWIJL @nextpos > 0
BEGIN
SELECTEER @nextpos = charindex („,“, @STRINPUT, @pos + 1)
SELECTEER @VALUELEN = COMPUTER-AIDED SOFTWARE ENGINEERING
WANNEER @NEXTPOS > 0 TOEN
@nextpos
ANDERS
len (@STRINPUT) + 1
EIND - @pos - 1
reeks @insertvalue = (substring (@STRINPUT, @pos + @valuelen 1,))
als IsNumeric (@insertvalue) = 1
begin
NEEM @INTTABLE OP (WAARDE)
WAARDEN (@insertvalue)
eind
SELECTEER @pos = @nextpos
EIND
TERUGKEER
EIND
Dan in uw opgeslagen procedurevraag
….
waar (tbProduct.iProductid binnen (uitgezochte waarde van GET_INT_TABLE (@MYSTRING)))