回傳表格、欄位、度量或日曆的名稱,作為文字字串。 可選參數控制回傳名稱的哪個元件,以及結果如何逃逸。
語法
NAMEOF ( <object> [, <component> [, <escaped>]] )
參數
| 術語 | Definition |
|---|---|
object |
你想檢索的表格、欄位、度量或日曆名稱。 |
component |
(可選)一個列舉,指定要回傳合格名稱的哪個部分。 若省略,則預設為 FULL。 請參閱 元件價值。 |
escaped |
(可選)一個列舉,指定如何轉義返回的名稱。 若省略,則預設為 ESCAPED。 參見 逃逸值。 |
元件值
component 參數接受下列值:
| 價值 | 說明 |
|---|---|
TABLE |
回傳資料表名稱。 如果物件沒有與資料表(例如行事曆)相關聯,則會回傳錯誤。 |
COLUMN |
回傳欄位名稱。 如果物件不是欄位,會回傳錯誤。 |
MEASURE |
回傳度量名稱。 如果物件不是測度,會回傳錯誤。 |
CALENDAR |
回傳日曆名稱。 如果物件不是日曆,會回傳錯誤。 |
FULL |
(預設)回傳物件的完整限定名稱。 |
SELF |
回傳物件本身的名稱:欄位與度量的欄位或度量名稱,或表與日曆的表格/日曆名稱。 |
PARENT |
回傳欄位與度量的父資料表名稱。 對於表格和行事曆會回傳錯誤。 |
逃逸值
escaped 參數接受下列值:
| 價值 | 說明 |
|---|---|
ESCAPED |
(預設)回傳名稱時會 DAX 完全轉義:表格名稱以單引號包裹,欄名與度量名稱以方括號包裹。 |
UNESCAPED |
回傳原始名稱,且不使用任何分隔符或轉義字元。 對於包含父元件與子元件的完全限定名稱,會回傳錯誤。 |
MINIMALLYESCAPED |
只會在名稱需要時才回傳並套用逃脫的名稱。 僅包含簡單字母、數字和底線的名稱則會回傳且不加分隔符。 包含空格或特殊字元的名稱則會以轉義方式回傳。 |
返回值
一個帶有所需名稱的文字字串,根據元件及跳脫參數格式化。
備註
- 當僅用
object參數呼叫時,NAMEOF 的行為與先前版本相同,回傳一個完全限定且已脫義的名稱。 由於component預設為FULL,且escaped預設為ESCAPED,返回格式如下:- 對於表格:
'TableName'。 - 欄位:
'TableName'[ColumnName]。 - 測度方面:
'TableName'[MeasureName]。 - 關於行事曆:
'CalendarName'。 - 對於變異欄位:
'TableName'[ColumnName].[VariationName]。
- 對於表格:
- 變數和動態表達式不支援作為 NAMEOF 的參數。
- 在計算資料行或資料列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。
依輸入類型的元件行為
下表顯示了不同輸入類型下,使用預設component模式的每個ESCAPED值的結果。 「錯誤」表示組合回傳錯誤。
| 輸入類型 | TABLE |
COLUMN |
MEASURE |
CALENDAR |
FULL |
SELF |
PARENT |
|---|---|---|---|---|---|---|---|
專欄 - Sales[Sales Amount] |
'Sales' |
[Sales Amount] |
錯誤 | 錯誤 | 'Sales'[Sales Amount] |
[Sales Amount] |
'Sales' |
表格 - Sales |
'Sales' |
錯誤 | 錯誤 | 錯誤 | 'Sales' |
'Sales' |
錯誤 |
衡量標準 - Sales[m1] |
'Sales' |
錯誤 | [m1] |
錯誤 | 'Sales'[m1] |
[m1] |
'Sales' |
行事曆 - myCalendar |
錯誤 | 錯誤 | 錯誤 | 'myCalendar' |
'myCalendar' |
'myCalendar' |
錯誤 |
逃脫行為
參數 escaped 控制該步驟產生 component 的名稱格式化方式。 下表以完全轉義的名稱作為參考,並顯示每個 escaped 值的輸出。
| 完全逃逸的名字 | ESCAPED |
UNESCAPED |
MINIMALLYESCAPED |
|---|---|---|---|
'Sales' |
'Sales' |
Sales |
Sales |
'Sales'[Sales Amount] |
'Sales'[Sales Amount] |
錯誤 | Sales[Sales Amount] |
'Sales'[m1] |
'Sales'[m1] |
錯誤 | Sales[m1] |
[Amount] |
[Amount] |
Amount |
Amount |
'Sales Region' |
'Sales Region' |
Sales Region |
'Sales Region' |
'Sales Region'[Column] |
'Sales Region'[Column] |
錯誤 | 'Sales Region'[Column] |
[Order Quantity] |
[Order Quantity] |
Order Quantity |
[Order Quantity] |
備註
UNESCAPED 對於完全限定的名稱(包含表格與欄位/度量成分的名稱)會回傳錯誤,因為若沒有分隔符,結果會產生歧義。
特殊角色逃脫規則
以下脫義規則適用於名稱分隔符內 DAX :
-
表格名稱(單引號區隔): 在資料表名稱中,字面上的單引號(
')會被轉為兩個單引號('')。 -
欄名與度量名稱(括號內標示): 欄位或度量名稱中的字面閉括號(
])可轉為]]。 開括號([)不需要脫離。
| 完全逃逸的名字 | ESCAPED |
UNESCAPED |
MINIMALLYESCAPED |
|---|---|---|---|
'Ta''''ble' (表中含 ' in 名稱) |
'Ta''''ble' |
Ta''ble |
Ta''ble |
[colu[]]mn] (欄位名稱為 ] in) |
[colu[]]mn] |
colu[]mn |
[colu[]]mn] |
本文中的範例可以搭配範例 Adventure Works DW 2020 Power BI Desktop 模型使用。 若要取得模型,請參閱 DAX 範例模型。
範例 1
以下 DAX 查詢會回傳欄位的完全限定名稱:
EVALUATE
{ NAMEOF ( 'Sales'[ORDER QUANTITY] ) }
退貨
| [值] |
|---|
| 「銷售」[訂單數量] |
範例 2
以下 DAX 查詢會回傳測度的完整限定名稱:
DEFINE
MEASURE Sales[Projected Sales] =
SUM ( 'Sales'[Sales Amount] ) * 1.06
EVALUATE
{ NAMEOF ( [Projected Sales] ) }
退貨
| [值] |
|---|
| 「銷售」[預計銷售] |
範例 3
以下 DAX 查詢使用參數 component ,僅從欄位參考中擷取資料表名稱:
EVALUATE
{ NAMEOF ( 'Sales'[Sales Amount], TABLE ) }
退貨
| [值] |
|---|
| 「銷售」 |
範例 4
以下 DAX 查詢會回傳一個未脫義的資料表名稱:
EVALUATE
{ NAMEOF ( 'Sales', FULL, UNESCAPED ) }
退貨
| [值] |
|---|
| Sales |
範例 5
以下 DAX 查詢使用 and componentescaped 參數來回傳欄位最小逃逸的父表名稱:
EVALUATE
{ NAMEOF ( 'Sales'[Sales Amount], PARENT, MINIMALLYESCAPED ) }
退貨
| [值] |
|---|
| Sales |