Мне нужно создать запрос, который принимает список целых чисел и объединяет несколько SELECT с INTERSECT с использованием SQL Server 2008 R2.Вот в основном запрос, который мне нужно построить, но число SELECTS будет различным:
SELECT col1
FROM table1
WHERE col2 = 1
INTERSECT
SELECT col1
FROM table1
WHERE col2 = 2
INTERSECT
SELECT col1
FROM table1
WHERE col2 = 3
У меня есть табличная функция, которая возьмет список идентификаторов, разделенных запятыми, и создаст из них таблицу.,Но в основном мне нужно пройти через эту табличную функцию, чтобы построить инструкцию SQL, а затем выполнить ее.
Как мне создать этот цикл?Или, возможно, есть лучший способ сделать это (я могу сделать это в коде, если это будет лучше)?
РЕДАКТИРОВАТЬ: Чтобы уточнить цель использования INTERSECT, вот что я делаю.Структура, которую я использую, предназначена для связи родительских продуктов с дочерними продуктами на основе выбора атрибутов (размер, цвет и т. Д.).Для каждой комбинации атрибутов существует один соответствующий дочерний продукт.Таким образом, каждый выбор выбирает все дочерние продукты, сопоставленные с отдельным значением атрибута.Затем я должен найти пересечение каждого из них, чтобы найти один дочерний продукт, который соответствует этой комбинации атрибутов.Если есть лучший способ сделать запрос, я открыт для него.Я знаю, что внутренние объединения будут иметь тот же результат, но все равно потребуют такой же итерации.