NAMEOF

适用于:计算列计算表度量值视觉计算

以文本字符串的形式返回表、列、度量值或日历的名称。 可选参数控制返回名称的哪个组件以及如何转义结果。

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 查询使用 componentescaped 参数返回列的最小转义父表名称:

EVALUATE
{ NAMEOF ( 'Sales'[Sales Amount], PARENT, MINIMALLYESCAPED ) }

返回:

[值]
Sales