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() 应用于表 Colors 和 Stationery 所得的结果。
表 Colors 包含颜色和模式:
颜色 |
模式 |
---|---|
红色 |
水平条带 |
绿色 |
垂直条带 |
蓝色 |
交叉阴影 |
表 Stationery 包含字体和表示形式:
字体 |
表示形式 |
---|---|
serif |
阳文 |
sans-serif |
刻纹 |
生成交叉联接的表达式如下所示:
CROSSJOIN( Colors, Stationery)
当上述表达式用于需要表表达式的任何位置时,表达式的结果应如下所示:
Red |
水平条带 |
serif |
阳文 |
绿色 |
垂直条带 |
serif |
阳文 |
蓝色 |
交叉阴影 |
serif |
阳文 |
Red |
水平条带 |
sans-serif |
刻纹 |
绿色 |
垂直条带 |
sans-serif |
刻纹 |
蓝色 |
交叉阴影 |
sans-serif |
刻纹 |