将Power Query中的参数传递给T

编程入门 行业动态 更新时间:2024-10-26 01:18:18
本文介绍了将Power Query中的参数传递给T-SQL,但仍可编辑查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 是否可以在T-SQL查询中使用Power Query参数,但仍允许我像在链接图像中那样在"编辑设置"部分编辑源查询?我知道您可以通过高级编辑器屏幕将参数插入,但这样就很难对查询进行额外的编辑。

本质上,我仍然希望在SQL查询中使用该参数,但不会失去轻松进行编辑的能力。我在Power BI(台式机)中使用Power Query。感谢您的帮助。

推荐答案

是的,这是可能的。

创建该查询时,第一个应用的步骤(请参见屏幕截图中的右窗格)将是如下所示的M代码:

= Sql.Database("server", "db", [Query="SELECT * FROM ABC WHERE Date = [Parameter]"])

如果您有一个参数Param,您可以将代码编辑为动态的,如下所示:

= Sql.Database("server", "db", [Query="SELECT * FROM ABC WHERE Date = "&Text.From(Param)])

但是,PowerQuery可以进行自己的查询折叠,这在许多情况下可能会更轻松、更高效。

如果在不使用SQL语句的情况下加载该表,则查询应该如下所示:

let Source = Sql.Database("server", "db"), dbo_ABC = Source{[Schema="dbo",Item="ABC"]}[Data] in dbo_ABC

从那里您可以对Date列应用筛选器(从下拉列表中选择任何日期),这应该会产生如下所示的另一个步骤:

#"Filtered Rows" = Table.SelectRows(dbo_ABC, each ([Date] = #date(2019, 12, 31)))

在这里,您可以用Date参数替换您选择的任何日期,因此现在整个查询如下所示:

let Source = Sql.Database("server", "db"), dbo_ABC = Source{[Schema="dbo",Item="ABC"]}[Data], #"Filtered Rows" = Table.SelectRows(dbo_ABC, each ([Date] = Param)) in #"Filtered Rows"

(请确保Date列和参数的数据类型相同,否则将出现错误。)

现在,右击应用步骤中的最后一步,如并选择‘View Native Query’,您将看到PowerQuery实际发送回服务器的生成的SQL代码。它将如下所示(其中显式编写参数)。

select [_].[Col1], [_].[Col2], [_].[Col3], [...] from [dbo].[ABC] as [_] where [_].[Date] = '2019-12-31' and [_].[Date] is not null

总之,关键是您可以在查询编辑器中工作,而不是修改查询字符串。

更多推荐

将Power Query中的参数传递给T

本文发布于:2023-06-04 19:07:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/503324.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:参数   Power   Query

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!