返回一个表,该表包含自变量中所有表的所有行的笛卡尔乘积。 新表中的列是所有参数表中的所有列。
语法
CROSSJOIN(<table>, <table>[, <table>]…)
参数
术语 | 定义 |
---|---|
table |
返回数据表的任何 DAX 表达式 |
返回值
包含自变量中所有表中所有行的笛卡尔乘积的表。
言论
来自
table
参数的列名在所有表中必须全部不同,否则将返回错误。CROSSJOIN() 返回的行总数等于自变量中所有表中的行数的乘积;此外,结果表中的列总数是所有表中列数的总和。 例如,如果 TableA 具有 rA 行和 cA 列,而 TableB 具有 rB 行和 cB 列,而 TableC 具有 rC 行和 cC 列;然后,生成的表 rA × rb × rC 行,cA + cB + cC 列。
在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
例
以下示例显示了将 CROSSJOIN()应用于两个表的结果:颜色 和 信纸。
表 颜色 包含颜色和图案:
颜色 | 模式 |
---|---|
红 | 水平条带 |
绿 | 垂直条纹 |
蓝 | Crosshatch |
表格 文具 包含字体和演示文稿:
字体 | 介绍 |
---|---|
衬线 | 浮雕 |
sans-serif | 刻 |
下面显示了生成交叉联接的表达式:
CROSSJOIN( Colors, Stationery)
在预期表表达式的位置使用上述表达式时,表达式的结果如下所示:
颜色 | 模式 | 字体 | 介绍 |
---|---|---|---|
红 | 水平条带 | 衬线 | 浮雕 |
绿 | 垂直条纹 | 衬线 | 浮雕 |
蓝 | Crosshatch | 衬线 | 浮雕 |
红 | 水平条带 | sans-serif | 刻 |
绿 | 垂直条纹 | sans-serif | 刻 |
蓝 | Crosshatch | sans-serif | 刻 |