Операторы (синтаксис многомерных выражений)

В многомерных выражениях операторы выполняют следующие действия:

  • Изменяют данные, постоянно или временно.

  • Выполняют поиск значений или объектов, соответствующих указанному условию.

  • Выполнение операции выбора между значениями или выражениями.

  • Проверяют особые условия перед началом или фиксацией транзакций либо перед выполнением определенных инструкций.

Многомерные выражения поддерживают операторы, перечисленные в следующей таблице.

Для выполнения операций этого типа Использование
Назначения значения переменной или связывания столбцов результирующего набора данных с псевдонимом. Операторы присваивания
Сложение, вычитание, умножение, деление. Арифметические операторы
Проверка истинности условия, такого как AND, OR, NOT и XOR. Битовые операторы
Сравнение значения с другим значением или выражением. Операторы сравнения
Или постоянное, или временное объединение двух строк в одну. Операторы объединения
Или постоянное, или временное объединение двух выражений набора в один набор. Операторы наборов
Выполнение операции над одним операндом. Унарные операторы

Заметка

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

При использовании нескольких операторов важен порядок, в котором многомерное выражение вычисляет операторы. Подобным образом пользователь операторов может потребовать преобразования одного типа данных в другой тип данных перед вычислением операторов.

Вычисление сложных выражений

Построить выражение можно, объединив несколько меньших выражений с помощью операторов. В этих сложных выражениях многомерные выражения оценивают операторы в порядке на основе определения приоритета оператора, используемого службами Analysis Services. Многомерное выражение выполняет операторы с высокой очередностью раньше, чем операторы с низкой очередностью.

Основные сведения об очередности операторов

В следующем списке показана очередность операторов, от высшей очередности к низшей. Операторы в одной строке имеют равную очередность и вычисляются слева направо, если иной порядок не задан скобками:

  • IS

  • :

  • ^

  • /, *

  • +, -

  • <>, >=, =, <=, >, <

  • Логическое НЕ

  • И

  • XOR

  • ИЛИ

Дополнительные сведения об операторах в многомерных выражениях см. в справочнике по оператору многомерных выражений (МНОГОМЕРНЫЕ выражения).

Определение результатов

При формировании сложного выражения путем объединения простых выражений тип данных результирующего значения определяется правилами для операторов в сочетании с правилами для очередности типов данных.

Если результатом является символ или значение Юникода, то режим сопоставления результата определяется правилами для операторов в сочетании с очередностью параметров сортировки. Дополнительные сведения о параметрах сортировки см. в разделе "Языки" и "Параметры сортировки" (службы Analysis Services).

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

Преобразование типов данных

Многомерное выражение неявно преобразует объект в другой тип, если этот объект используется в выражении, требующем данные другого типа. В следующей таблице определены правила преобразования для каждого объекта.

Исходный тип Требуемый тип Преобразование
Уровень Set <level.members>
Иерархия Элемент <hierarchy.defaultmember>
Элемент Tuple (<Член>)
Tuple Элемент <tuple.item>(0)
Tuple Scalar <tuple.value>

См. также

Справочник по оператору многомерных выражений (многомерные выражения)
Элементы синтаксиса многомерных выражений (многомерные выражения)