運算子 (MDX 語法)
在多維度運算式 (MDX) 中,您可以使用運算子來執行以下動作:
- 變更資料,永久性或暫時性皆可。
- 搜尋符合指定條件的值或物件。
- 實作值或運算式之間的決策。
- 在開始或認可交易之前,或是執行特定的陳述式之前,測試特定條件。
MDX 支援下表中列出的運算子:
若要執行此種類型的運算 | 使用 |
---|---|
將某值指派到變數,或使用別名來關聯結果集資料行。 |
|
加法、減法、乘法、除法。 |
|
測試條件的真實性,例如 AND、OR、NOT 或 XOR。 |
|
針對另一個值或運算式來比較某值。 |
|
永久或暫時將兩個字串結合成一個字串。 |
|
永久或暫時將兩個集合運算式結合成單一集合。 |
|
在一個運算元上執行運算。 |
附註: |
---|
在查詢中,只要看得見 Cube 中與某些類型運算子並用的資料,任何人都可以執行運算。但是,您必須要有適當的權限,才能順利地變更資料。 |
使用多個運算子時,MDX 評估運算子的順序很重要。同樣地,運算子的使用者可能必須將一個資料類型轉換成另一個資料類型,才能評估運算子。
評估複雜的運算式
您可以使用運算子來結合數個較小的運算式,來建立一個運算式。在這些複雜的運算式中,MDX 評估運算子的順序是根據 Microsoft SQL Server 2005 Analysis Services (SSAS) 所使用的運算子優先順序定義。MDX 會先執行優先順序較高的運算子,之後才會執行優先順序較低的運算子。
瞭解運算子優先順序
以下清單會顯示運算子優先順序,從最高顯示到最低。位於同一行的運算子會有相同的優先順序,而且除非利用括號強制執行,否則會由左至右進行評估。
- IS
- AS
- DISTINCT
- :
- ^
- /, *
- +, -
- EXISTING
- <>, >=, =, <=, >, <
- NOT
- AND
- XOR
- OR
如需 MDX 運算子的詳細資訊,請參閱<MDX 運算子參考 (MDX)>。
決定結果
當您將簡單的運算式組合成複雜的運算式時,結合了資料類型優先順序規則的運算子規則,即可決定結果值的資料類型。
如果結果是字元或 Unicode 值, 結合運算子的規則與定序優先順序的規則,就可以決定結果的定序。如需有關定序的詳細資訊,請參閱<使用語言和定序 (SSAS)>。
另有根據簡單運算式的整數位數、小數位數以及長度,決定結果之整數位數、小數位數及長度的規則。
轉換資料類型
在需要不同類型的運算式中使用物件時,MDX 會隱含地將那個物件轉換成不同的類型。下表定義了每個物件的轉換規則。
原始類型 | 所需類型 | 轉換 |
---|---|---|
Level |
Set |
<level>.members |
Hierarchy |
成員 |
<hierarchy>.defaultmember |
Member |
Tuple |
(<Member>) |
Tuple |
Member |
<tuple>.item(0) |
Tuple |
Scalar |
<tuple>.value |