Операторы (синтаксис многомерных выражений)
В многомерных выражениях операторы выполняют следующие действия:
Изменяют данные, постоянно или временно.
Выполняют поиск значений или объектов, соответствующих указанному условию.
Выполнение операции выбора между значениями или выражениями.
Проверяют особые условия перед началом или фиксацией транзакций либо перед выполнением определенных инструкций.
Многомерные выражения поддерживают операторы, перечисленные в следующей таблице.
Для выполнения операций этого типа | Использование |
---|---|
Назначения значения переменной или связывания столбцов результирующего набора данных с псевдонимом. | Операторы присваивания |
Сложение, вычитание, умножение, деление. | Арифметические операторы |
Проверка истинности условия, такого как AND, OR, NOT и XOR. | Битовые операторы |
Сравнение значения с другим значением или выражением. | Операторы сравнения |
Или постоянное, или временное объединение двух строк в одну. | Операторы объединения |
Или постоянное, или временное объединение двух выражений набора в один набор. | Операторы наборов |
Выполнение операции над одним операндом. | Унарные операторы |
Заметка
Операции в запросах может выполнять каждый, кто видит в кубе данные, используемые с оператором любого типа. Однако изменить данные невозможно без соответствующих разрешений.
При использовании нескольких операторов важен порядок, в котором многомерное выражение вычисляет операторы. Подобным образом пользователь операторов может потребовать преобразования одного типа данных в другой тип данных перед вычислением операторов.
Вычисление сложных выражений
Построить выражение можно, объединив несколько меньших выражений с помощью операторов. В этих сложных выражениях многомерные выражения оценивают операторы в порядке на основе определения приоритета оператора, используемого службами Analysis Services. Многомерное выражение выполняет операторы с высокой очередностью раньше, чем операторы с низкой очередностью.
Основные сведения об очередности операторов
В следующем списке показана очередность операторов, от высшей очередности к низшей. Операторы в одной строке имеют равную очередность и вычисляются слева направо, если иной порядок не задан скобками:
IS
:
^
/, *
+, -
<>, >=, =, <=, >, <
Логическое НЕ
И
XOR
ИЛИ
Дополнительные сведения об операторах в многомерных выражениях см. в справочнике по оператору многомерных выражений (МНОГОМЕРНЫЕ выражения).
Определение результатов
При формировании сложного выражения путем объединения простых выражений тип данных результирующего значения определяется правилами для операторов в сочетании с правилами для очередности типов данных.
Если результатом является символ или значение Юникода, то режим сопоставления результата определяется правилами для операторов в сочетании с очередностью параметров сортировки. Дополнительные сведения о параметрах сортировки см. в разделе "Языки" и "Параметры сортировки" (службы Analysis Services).
Имеются также правила, определяющие точность, масштаб и длину результата на основании данных о точности, масштабе и длине составляющих его простых выражений.
Преобразование типов данных
Многомерное выражение неявно преобразует объект в другой тип, если этот объект используется в выражении, требующем данные другого типа. В следующей таблице определены правила преобразования для каждого объекта.
Исходный тип | Требуемый тип | Преобразование |
---|---|---|
Уровень | Set | <level.members> |
Иерархия | Элемент | <hierarchy.defaultmember> |
Элемент | Tuple | (<Член>) |
Tuple | Элемент | <tuple.item>(0) |
Tuple | Scalar | <tuple.value> |
См. также
Справочник по оператору многомерных выражений (многомерные выражения)
Элементы синтаксиса многомерных выражений (многомерные выражения)