java - Microsoft Power Query M 公式语言到 SQL 查询的转换

标签 java sql sql-server jdbc powerquery

我正在开展一个重新平台项目,我们正在用 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 执行。

最佳答案

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

但是您可以尝试获取 Power Query 正在执行的 SQL 查询。

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

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

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

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

View Native Query

编辑:

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

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

关于java - Microsoft Power Query M 公式语言到 SQL 查询的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58422858/

相关文章:

php - 用户登录帐户时更改数据库字段

sql - SSMS - MYSQL Server 查询选项设置为开/关以短日期格式显示所有列?

java - Android 上的简单 OpenGL ES 2.0 应用程序显示黑屏 : why?

java - 如何在 Mac OS X Snow Leopard 上重新安装 Java 6

php - 如何在使用 mySQLi 的 SQL 查询中使用带有表对象的 $result 变量

sql - 数据对的表约束,与顺序无关

c# - 如何在 C# 中实现多线程事务?

sql - 伊斯兰周数

java - 如何更改所使用的房间

java - 为什么在这种情况下不会发生死锁