Intersect (многомерные выражения)

Возвращает пересечение двух входных наборов, при необходимости сохраняя повторяющиеся элементы.

Синтаксис

Intersect(Set_Expression1 , Set_Expression2 [ , ALL ] )

Аргументы

  • Set_Expression1
    Допустимое многомерное выражение, возвращающее набор.

  • Set_Expression2
    Допустимое многомерное выражение, возвращающее набор.

Замечания

Функция пересечения Intersect возвращает пересечение двух наборов. По умолчанию эта функция удаляет дубликаты из обоих наборов до проведения операции над наборами. Оба набора должны иметь одинаковую размерность.

Необязательный флаг ALL сохраняет дубликаты. Если указывается флаг ALL, функция Intersect вычисляет не только пересечение неповторяющихся элементов, но и пересечение повторяющихся элементов первого набора, которые повторяются во втором наборе. Оба набора должны иметь одинаковую размерность.

Пример

Следующий запрос возвращает значения 2003 и 2004 годов. Эти два элемента присутствуют в обоих указанных наборах.

SELECT

INTERSECT(

{[Date].[Calendar Year].&[2001], [Date].[Calendar Year].&[2002],[Date].[Calendar Year].&[2003]}

, {[Date].[Calendar Year].&[2002],[Date].[Calendar Year].&[2003], [Date].[Calendar Year].&[2004]})

ON 0

FROM

[Adventure Works]

Следующий запрос завершается ошибкой, поскольку два заданных набора содержат элементы из различных иерархий.

SELECT

INTERSECT(

{[Date].[Calendar Year].&[2001]}

, {[Customer].[City].&[Abingdon]&[ENG]})

ON 0

FROM

[Adventure Works]