包含所提供的两个参数表的半连接,其公共列将被替换为始于 0 的索引列(列名由第二参数指定)。索引值基于按指定顺序(第四参数)排序的第二个表的行。
语法
SUBSTITUTEWITHINDEX ( <Table>, <Name>, <SemiJoinIndexTable>, <Expression> [, [<Order>] [, <Expression> [, [<Order>] [, … ] ] ] ] )
参数 | 属性 | 描述 |
表 | 通过对指定为第三参数的表执行左半联接来进行筛选的表。 这是左半联接左侧的表,因此返回的表包含与该表相同的列,只不过两个表的所有公用列都将替换为返回表中的单个索引列 | |
列名 | 指定索引列名称的字符串,用于替换作为此函数参数提供的两个表中的所有公用列 | |
半连接的表 | 左半联接的第二个表。 这是左半联接的右侧的表。 函数只返回此表中存在的值。 此外,此表的列(基于列名称)将替换为此函数返回的表中的单个索引列 | |
表达式 | 可重复 | 任何标量表达式,其结果用于指定半连接表的所需排序顺序,以生成正确的索引值。 |
排序 | 可选 可重复 |
用于指定表达式值的排序方式(升序或降序)的值:0/FALSE 降序(默认),1/TRUE 升序 |
返回值
表
整个表或具有一列或多列的表。
备注
- 返回表示作为参数提供的两个表的左半联接的表。 半联接通过公用列来执行,并由公用列名称和公用数据类型确定。 要联接的列将替换为返回的表中的单个列,该表的类型为整数并包含一个索引。 基于指定的排序顺序,索引是对右联接表的引用。
- 位于右侧/第二个表中的列(不存在于提供的左侧/第一个表中)不包含在返回的表中,并且不用于联接。
- 索引从 0(基于 0)开始,并且所提供的右侧/第二个联接表每增加一行,索引就会增加一个。 索引基于为右侧/第二个联接表指定的排序顺序。
- Power BI 内部对矩阵图使用 SUBSTITUTEWITHINDEX
示例
以下查询只包括来自第一个表的 User 列,名称列和公司列被索引列替换,索引值对应于半连接表中匹配到的值从 0 起始的位置:
EVALUATE SUBSTITUTEWITHINDEX ( UNION ( ROW ( "Name", "Marco", "Company", "Sqlbi", "User", "marcor" ), ROW ( "Name", "Alberto", "Company", "Sqlbi", "User", "hal" ), ROW ( "Name", "Bob", "Company", "Contoso", "User", "bob97" ) ), "index", UNION ( ROW ( "Company", "Sqlbi", "Name", "Alberto" ), ROW ( "Company", "Contoso", "Name", "Bob" ), ROW ( "Company", "Sqlbi", "Name", "Marco" ) ), 0 )
- MSDN 文档:SUBSTITUTEWITHINDEX
- DAX Guide:SUBSTITUTEWITHINDEX
说点什么