Чтобы подтвердить, что я правильно понял, вы хотите передать список чисел и посмотреть, какое из этих чисел не присутствует в существующей таблице? В действительности:
SELECT Item
FROM IDList I
LEFT JOIN TABLE T ON I.Item=T.ID
WHERE T.ID IS NULL
Похоже, вы в порядке с созданием этого запроса на лету, и в этом случае вы можете сделать это с помощью таблицы цифр / подсчета, изменив приведенное выше значение на
SELECT Number
FROM (SELECT Number FROM Numbers WHERE Number IN (1,2,3,4)) I
LEFT JOIN TABLE T ON I.Number=T.ID
WHERE T.ID IS NULL
Это относительно склонно к атакам SQL-инъекций, хотя из-за способа построения запроса. Было бы лучше, если бы вы могли передать '1,2,3,4' в виде строки и разбить ее на разделы, чтобы сгенерировать список номеров, к которому можно присоединиться более безопасным способом - пример того, как это сделать, см. http://www.sqlteam.com/article/parsing-csv-values-into-multiple-rows
Все это предполагает, что в вашей базе данных есть таблица чисел / счетчиков, но в целом они достаточно полезны, и я настоятельно рекомендую вам это сделать.