以文本字符串的形式返回表、列、度量值或日历的名称。 可选参数控制返回名称的哪个组件以及如何转义结果。
Syntax
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 模式下使用此函数。
按输入类型排序的组件行为
下表显示了使用默认ESCAPED模式的不同输入类型每个component值的结果。 “Error”表示组合返回错误。
| 输入类型 | TABLE |
COLUMN |
MEASURE |
CALENDAR |
FULL |
SELF |
PARENT |
|---|---|---|---|---|---|---|---|
列- Sales[Sales Amount] |
'Sales' |
[Sales Amount] |
Error | Error | 'Sales'[Sales Amount] |
[Sales Amount] |
'Sales' |
表- Sales |
'Sales' |
Error | Error | Error | 'Sales' |
'Sales' |
Error |
措施- Sales[m1] |
'Sales' |
Error | [m1] |
Error | 'Sales'[m1] |
[m1] |
'Sales' |
日历- myCalendar |
Error | Error | Error | 'myCalendar' |
'myCalendar' |
'myCalendar' |
Error |
转义行为
参数 escaped 控制如何设置步骤生成 component 的名称的格式。 下表使用完全转义的名称作为引用,并显示每个 escaped 值的输出。
| 完全转义的名称 | ESCAPED |
UNESCAPED |
MINIMALLYESCAPED |
|---|---|---|---|
'Sales' |
'Sales' |
Sales |
Sales |
'Sales'[Sales Amount] |
'Sales'[Sales Amount] |
Error | Sales[Sales Amount] |
'Sales'[m1] |
'Sales'[m1] |
Error | Sales[m1] |
[Amount] |
[Amount] |
Amount |
Amount |
'Sales Region' |
'Sales Region' |
Sales Region |
'Sales Region' |
'Sales Region'[Column] |
'Sales Region'[Column] |
Error | 'Sales Region'[Column] |
[Order Quantity] |
[Order Quantity] |
Order Quantity |
[Order Quantity] |
注释
UNESCAPED 返回完全限定名称(包括表和列/度量组件的名称)的错误,因为结果不明确且没有分隔符。
特殊字符转义规则
以下转义规则适用于 DAX 名称分隔符:
-
表名(以单引号分隔): 表名中的文本单引号(
')作为两个单引号('')进行转义。 -
列名和度量值名称(用括号分隔): 列或度量值名称中的文字右括号 (
]) 被转义为]]。 左括号 ([) 不需要转义。
| 完全转义的名称 | ESCAPED |
UNESCAPED |
MINIMALLYESCAPED |
|---|---|---|---|
'Ta''''ble' (名称 ' 为表) |
'Ta''''ble' |
Ta''ble |
Ta''ble |
[colu[]]mn] (名称为 ] 列) |
[colu[]]mn] |
colu[]mn |
[colu[]]mn] |
示例 1
以下 DAX 查询返回列的完全限定名称:
EVALUATE
{ NAMEOF ( 'Sales'[ORDER QUANTITY] ) }
返回:
| [值] |
|---|
| 'Sales'[Order Quantity] |
示例 2
以下 DAX 查询返回度量值的完全限定名称:
DEFINE
MEASURE Sales[Projected Sales] =
SUM ( 'Sales'[Sales Amount] ) * 1.06
EVALUATE
{ NAMEOF ( [Projected Sales] ) }
返回:
| [值] |
|---|
| 'Sales'[Projected Sales] |
示例 3
以下 DAX 查询使用 component 参数仅从列引用中提取表名称:
EVALUATE
{ NAMEOF ( 'Sales'[Sales Amount], TABLE ) }
返回:
| [值] |
|---|
| “Sales” |
示例 4
以下 DAX 查询返回未转义表名称:
EVALUATE
{ NAMEOF ( 'Sales', FULL, UNESCAPED ) }
返回:
| [值] |
|---|
| Sales |
示例 5
以下 DAX 查询使用 component 和 escaped 参数返回列的最小转义父表名称:
EVALUATE
{ NAMEOF ( 'Sales'[Sales Amount], PARENT, MINIMALLYESCAPED ) }
返回:
| [值] |
|---|
| Sales |