CROSSJOIN 函数 (DAX)

返回一个包含这些参数的所有表中所有行的笛卡尔积的表。 新表中的各列是所有参数表中的所有列。

语法

CROSSJOIN(<table>, <table>[, <table>]…)

参数

  • table
    任何返回数据表的 DAX 表达式

返回值

包含这些参数的所有表中的所有行的笛卡尔积的表。

注释

  • table 参数中的列名在所有表中都必须不同,否则返回错误。

  • CROSSJOIN() 返回的总行数等于参数内所有表中行数的乘积;此外,结果表中的总列数是所有表中列数的总和。 例如,如果 TableA 具有 rA 行和 cA 列,TableB 具有 rB 行和 cB 列,TableC 具有 rC 行和 cC 列;则结果表具有 rA × rb × rC 行和 cA + cB + cC 列。

示例

以下示例演示将 CROSSJOIN() 应用于表 ColorsStationery 所得的结果。

Colors 包含颜色和模式:

颜色

模式

红色

水平条带

绿色

垂直条带

蓝色

交叉阴影

Stationery 包含字体和表示形式:

字体

表示形式

serif

阳文

sans-serif

刻纹

生成交叉联接的表达式如下所示:

CROSSJOIN( Colors, Stationery)

当上述表达式用于需要表表达式的任何位置时,表达式的结果应如下所示:

Red

水平条带

serif

阳文

绿色

垂直条带

serif

阳文

蓝色

交叉阴影

serif

阳文

Red

水平条带

sans-serif

刻纹

绿色

垂直条带

sans-serif

刻纹

蓝色

交叉阴影

sans-serif

刻纹