为什么在似乎暗示时使用 CROSSJOIN?

Why use a CROSSJOIN when it seems to be implied?

以下两者有什么区别,哪个更优?

CROSSJOIN(
    [Team].[Hierarchy].[Conference].[NFC],
    {[Team].[Name].[Name].[Detroit Lions], [Team].[Name].[Name].[Minnesota Vikings]}
    )

并且:

(
    [Team].[Hierarchy].[Conference].[NFC],
    {[Team].[Name].[Name].[Detroit Lions], [Team].[Name].[Name].[Minnesota Vikings]}
    )

似乎元组中提供的任何集合都会自动交叉连接,那么为什么需要 CROSSJOIN`keyword/function?说下面三个一样对吗?

CROSSJOIN({}, {}, ...) == ({}, {}, ...) == {} * {} * ...

以上两种说法没有区别。然而在最后的声明中

CROSSJOIN({}, {}, ...) == ({}, {}, ...) == {} * {} * ...

最后一部分“({}, {}, ...) == {} * {} *”不一定正确。当你写 "{} * {}" 仅当两个集合(由 {} 表示)在维度和层次结构上相同时才存在。 详情请参考