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