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 資料表包含色彩和模式:

色彩

模式

Red

Horizontal Stripe

Green

Vertical Stripe

Blue

Crosshatch

Stationery 資料表包含字型和呈現方式:

字型

呈現方式

serif

embossed

sans-serif

engraved

要產生交叉聯結的運算式如下:

CROSSJOIN( Colors, Stationery)

在應該使用資料表運算式的位置使用上述運算式時,運算式的結果便如下所示:

Red

Horizontal Stripe

serif

embossed

Green

Vertical Stripe

serif

embossed

Blue

Crosshatch

serif

embossed

Red

Horizontal Stripe

sans-serif

engraved

Green

Vertical Stripe

sans-serif

engraved

Blue

Crosshatch

sans-serif

engraved