c# – 如何从给定的MDX查询中获取多维数据集名称

如何从给定的MDX查询中获取多维数据集名称.

例如:我有一个如下查询,

SELECT [Date].[Calendar Year].MEMBERS on 0 , TOPCOUNT( [Product].[Product].MEMBERS , 10 , [Measures].[Sales Amount] ) ON 1 FROM [Adventure Works]

如何从上面的查询中获取多维数据集名称Adventure Works?

最佳答案 您需要解析MDX.解析器需要的复杂程度取决于您可以投入的精力,对潜在错误的容忍度,以及您构建解析器的体验.

只是一个大纲:

您应该搜索关键字FROM.在MDX语法中,只能跟一个多维数据集名称或子选择.子选择可以通过括号后跟关键字SELECT来识别.
并且可以识别关键字,因为它们不包含在注释,字符串或方括号中.

由于子选择应该正确嵌套,我认为你甚至可能只搜索最后一个关键字FROM.这应始终后跟多维数据集名称,方括号或有效标识符.

点赞