首页 > 解决方案 > Microsoft Power Query M 公式语言到 sql 查询转换

问题描述

我正在开发一个重新平台化项目,我们正在用 java 和 angular 7 重写现有代码,我被困在一个地方,我必须为我需要的一组“Power Query M Language”查询编写 SQL 查询针对 SQL Server 执行。M 语言查询之一是,我们有比这个大得多的查询,还有很多

    Source = Sql.Database("server,port", "DBNAME"),
    dbo_tbl_ProgramConfiguration = Source{[Schema="SCHEMA",Item="TABLE"]}[Data],
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(<TABLE>, {{"Roles", Splitter.SplitTextByDelimiter(";", QuoteStyle.None), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Roles"),
    #"Trimmed Text" = Table.TransformColumns(#"Split Column by Delimiter",{{"Roles", Text.Trim, type text}}),
    #"Renamed Columns" = Table.RenameColumns(#"Trimmed Text",{{"Roles", "Role"}}),
    #"Removed Other Columns - Keep Title, RolesId, NewColumn.Role" = Table.SelectColumns(#"Renamed Columns",{"Program", "Role"}),
    #"Merged Queries" = Table.NestedJoin(#"Removed Other Columns - Keep Title, RolesId, NewColumn.Role",{"Role"},Roles,{"Role"},"Roles",JoinKind.Inner),
    #"Expanded Roles" = Table.ExpandTableColumn(#"Merged Queries", "Roles", {"Id"}, {"RolesId"}),
   #"Reordered Columns" = Table.ReorderColumns(#"Expanded Roles",{"Program", "Role", "RolesId"})
in
    #"Reordered Columns"

所以我一直在寻找任何转换工具或 Java/JDBC 中的任何功能,这些 M 语言查询可以转换为 SQL 或直接针对 SQL Server 执行。

标签: javasqlsql-serverjdbcpowerquery

解决方案


不完全是您问题的完整解决方案,但一些信息可能会有所帮助。

但是您可以尝试让 SQL Query Power Query 正在执行。

如果您在 Power BI 上运行此程序,则只需转到 Power Query 编辑器窗口,对于该查询,您可以检查最后一步的查看本机查询。如果它现在是灰色的,那么你很幸运。这将向您显示它运行的查询以获取应用了所有转换的数据。这是由于 Power Query 查询折叠功能而发生的,如果支持,它将在源中应用转换。

请注意,某些转换甚至应用转换的顺序可能会停止所有步骤的折叠,这些转换将在本地应用。

不确定您是否可以直接在 Excel 的 Power Query 中访问它。

但是您可以对源进行跟踪并捕获它运行的查询。

查看原生查询

编辑:

您可以自定义查询,您在 M 中的步骤应如下所示:

Sql.Database("YOURSERVERNAME", "Tailspintoys-us", [Query="select * from Sales"])

推荐阅读