Nun ja, entweder dynamisches SQL oder statisches.
Beim statischen SQL musst du eben 1000 Variablen aufführen.
Aber es gibt da noch einen kleinen Trick (den ich auch gerne verwende):

Nimm deine obige InSelekt-Variable und baue die Werte immer mit einen Trennzeichen zusammen (auch am Ende!).
"Wert1; Wert2; .....; WertN; "

Nun vergleiche:

where POSSTR(: InSelect, char(Feld) concat '; ' ) > 0

Bei numerischen klappt das ja ganz gut. Bei Zeichenketten muss man sich da schon ein Trennzeichen einfallenlassen, dass so nicht vorkommt. Hier bieten sich Hexwerte ganz gut an, da dies sowohl von ILERPG als auch SQL unterstützt wird, z.B. X'01'.