Мне нужно выбрать из всех пользователей, которых нет в наборе других подзапросов:
SELECT user_id
FROM (<userSubQuery1>)
WHERE
user_id NOT IN (<badUserSubQueryA>) AND
user_id NOT IN (<badUserSubQueryB>) AND
user_id NOT IN (<badUserSubQueryC>)
Только мне нужно выполнять фильтры NOT IN во многих различных запросах, где userSubQuery и badUserSubQueries могут отличаться. E.g.:
SELECT user_id
FROM (<userSubQuery2>)
WHERE
user_id NOT IN (<badUserSubQueryB>) AND
user_id NOT IN (<badUserSubQueryC>) AND
user_id NOT IN (<badUserSubQueryD>)
Все подзапросы, как те, которые я выбираю, так и те, которые использовались в NOT IN, являются сложными, поэтому я не хочу дублировать код для подзапросов NOT IN, которые часто совпадают (badUserSubQueryB и badUserSubQueryC в моем примере).
Я мог бы добиться этого с помощью динамического sql, но я бы предпочел, чтобы я мог этого избежать. Возможно ли это?