Excel Power Query中如何将参数传入MDX查询
解决Analysis Services MDX查询中参数传递问题
- 核心思路是利用M语言的字符串拼接运算符
&,将参数db_param嵌入到MDX查询语句中,同时保证MDX语法的正确性(字符串需用单引号包裹)。
正确的代码写法如下:
AnalysisServices.Database("server_name", db_param, [Query = "SELECT * FROM table_a WHERE db = '" & db_param & "'"])
- 如果
db_param的值可能包含单引号(会导致MDX语法错误),需要先对参数进行转义处理,将单引号替换为两个单引号:
let EscapedDbParam = Text.Replace(db_param, "'", "''"), MdxQuery = "SELECT * FROM table_a WHERE db = '" & EscapedDbParam & "'" in AnalysisServices.Database("server_name", db_param, [Query = MdxQuery])
解释:
- M语言中无法直接在字符串字面量里嵌入参数,必须通过
&完成字符串拼接。 - MDX里的字符串常量要求用单引号包裹,所以需要把
db_param放在两个单引号之间,通过拼接生成合法的MDX语句。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

