CROSSJOIN
返回一个表,其中包含参数中所有表的所有行的笛卡尔乘积。 新表中的列是所有参数表中的所有列。
语法
CROSSJOIN(<table>, <table>[, <table>]…)
parameters
术语 | 定义 |
---|---|
表 | 任何返回数据表的 DAX 表达式 |
返回值
一个表,其中包含参数中所有表的所有行的笛卡尔乘积。
备注
表参数中的列名在所有表中必须不同,否则返回错误。
CROSSJOIN() 返回的总行数等于参数中所有表的行数的乘积;此外,结果表中的总列数是所有表中的列数之和。 例如,如果 TableA 有 rA 行和 cA 列,TableB 有 rB 行和 cB 列,TableC 有 rC 行和 cC 列;那么,生成的表则有 rA × rb x rC 行和 cA + cB + cC 列。
在已计算的列或行级安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
示例
以下示例显示两个表应用 CROSSJOIN() 的结果:“颜色”和“信笺” 。
表“颜色”包含颜色和图案:
颜色 | 模式 |
---|---|
Red | 横条纹 |
绿色 | 竖条纹 |
蓝色 | 交叉线 |
表“信笺”包含字体和表示形式:
字体 | 呈现 |
---|---|
衬线字体 | 浮凸 |
无衬线字体 | 镌刻 |
生成交叉联接的表达式如下所示:
CROSSJOIN( Colors, Stationery)
在需要表表达式的任何位置使用上述表达式时,表达式结果如下:
颜色 | 模式 | 字体 | 呈现 |
---|---|---|---|
Red | 横条纹 | 衬线字体 | 浮凸 |
绿色 | 竖条纹 | 衬线字体 | 浮凸 |
蓝色 | 交叉线 | 衬线字体 | 浮凸 |
Red | 横条纹 | 无衬线字体 | 镌刻 |
绿色 | 竖条纹 | 无衬线字体 | 镌刻 |
蓝色 | 交叉线 | 无衬线字体 | 镌刻 |