Вот немного грязное решение вашей проблемы, если вы просто хотите вставить значение в строку:
SELECT *
FROM emp
WHERE
deptno = 10
AND (empno IN (%user_input%,%not_used_value%)
OR COALESCE(%user_input%,NULL) IS NULL);
Здесь %user_input%
- это заполнитель для значений, выбранных пользователем, а %not_used_value%
- это empno
id, который никогда не используется.
Итак, результирующий запрос может выглядеть так:
SELECT *
FROM emp
WHERE
deptno = 10
AND (empno IN (7782,7934,-999)
OR COALESCE(7782,7934,NULL) IS NULL);