演算子 (MDX 構文)
多次元式 (MDX) では、演算子を使用して以下の操作を実行できます。
永続的または一時的にデータを変更します。
指定した条件を満たす値またはオブジェクトを検索します。
値または式の間で決定を実装します。
トランザクションの開始やコミット、または特定のステートメントの実行の前に行う特定の条件に対する試験
MDX では、以下の表に示す演算子がサポートされます。
演算の種類 | 用途 |
---|---|
変数に値を割り当てるか、結果セット列をエイリアスに関連付けます。 | 代入演算子 |
加算、減算、乗算、除算。 | 算術演算子 |
AND、OR、NOT、XOR などの条件の真相をテストします。 | ビット処理演算子 &、^、| |
値を他の値または式と比較します。 | 比較演算子 |
2 つの文字列を永続的または一時的に 1 つの文字列に結合します。 | 連結演算子 |
2 つのセット式を 1 つのセットに永続的または一時的に結合します。 | 集合演算子 |
1 つのオペランドに対して演算を実行します。 | 単項演算子 |
注意
クエリ内では、特定の種類の演算子と共に使用するキューブのデータを読み取ることができるユーザーは演算を実行できます。 ただし、データを正常に変更するには、適切なアクセス許可が必要です。
複数の演算子を使用する場合、MDX が演算子を評価する順序が重要です。 同様に重要な点として、演算子を評価する前に、あるデータ型を別のデータ型に変換しておかなければならない場合もあります。
複雑な式の評価
演算子を使用して複数の小さな式を組み合わせることで、式を作成できます。 これらの複雑な式では、MDX は Analysis Services で使用される演算子の優先順位の定義に基づいて演算子を順番に評価します。 MDX は、優先順位の高い演算子を、優先順位の低い演算子より先に実行します。
演算子の優先順位について
次の一覧は、演算子の優先順位を最高から最低の順に示しています。 同じ行に示されている演算子は優先順位が同じです。かっこによる強制的な優先がない限り、左から右の順に評価されます。
IS
:
^
/, *
+、-
<>, >=, =, <=, >, <
NOT
AND
XOR
OR
MDX の演算子の詳細については、「 MDX 演算子リファレンス (MDX)」を参照してください。
結果の決定
単純な式を結合して複雑な式を作成する場合、演算子に関する規則とデータ型の優先順位に関する規則の組み合わせによって、結果の値のデータ型が決まります。
結果が文字または Unicode 値の場合、演算子の規則と照合順序の優先順位の規則が組み合わされて、結果の照合順序が決まります。 照合順序の詳細については、「 言語と照合順序 (Analysis Services)」を参照してください。
また、単純式の有効桁数、小数点以下桁数、長さに基づいて結果の有効桁数、小数点以下桁数、長さを決定するルールもあります。
データ型の変換
MDX では、あるオブジェクトが別のデータ型を必要とする式の中で使用されている場合、そのオブジェクトを別のデータ型へ暗黙的に変換します。 各オブジェクトは、次の表に示す規則に従って変換されます。
元の型 | 必要な型 | 変換 |
---|---|---|
レベル | オン | <level.members> |
Hierarchy | メンバー | <hierarchy.defaultmember> |
メンバー | タプル | (<メンバー>) |
タプル | メンバー | <tuple.item>(0) |
タプル | スカラー | <tuple.value> |