Power Query 参数化 - 在使用参数加载有限数量的行或完整的行集之间进行选择
Power Query Parametrization - Choose between loading a limited number of rows or a complete rowset using a parameter
我希望我在 PBI 中的 SQL 查询由参数定义。 Parameter1 是两个值 Big
和 Small
的列表。如果我将 Parameter1 设置为 Small
,那么我只想加载一个数据样本。我是这样做的:
let
ReturnQueryVar = (optional x) =>
if Parameter1 = "Small"
then " and Product in (1, 2, 3)"
else "",
Source = Sql.Database(
"myservername",
"mydatabase",
[
Query = "
select *
from table
where
1=1"
& ReturnQuery()
]
)
in
Source
我收到这个错误:
Expression.Error: 名称 'ReturnQuery' 未被识别。确保拼写正确。
更新。
捂脸!这是一个错字。 ReturnQuery 应该是 ReturnQueryVar.
不过,我想留下以下部分的问题:
ReturnQueryVar = (optional x) =>
if Parameter1 = "Small"
then " and Product in (1, 2, 3)"
else ""
PowerQuery 是否有 IF 的语法:
TextVar = IF(Parameter1 = 'S', 'This', 'That' )
我没见过这样的语法,但如果你愿意,你可以创建一个函数来实现,基本上是 Power Query
的 IF
语句的“容器”。
例如,您可以使用以下内容创建名为 IF
的 Blank Query
。
(cond as logical, if_true as any, if_false as any ) =>
if cond then if_true else if_false
在任何地方使用该函数都会有类似的结果和 IF 语句。
我只是在这里分享我最终得到的一个 PowerQuery 片段。此代码允许您在两个备用查询之间选择一个参数 - 第一个用于样本,另一个用于完整行集。它只允许从大型 table 下载一小部分行到 Power BI Desktop。
let
QueryCode = if Query_Parameter = "Sample"
then
"select 1"
else
"select 2",
Source = Sql.Database(
"MyServer",
"MyDataBase",
[ Query = QueryCode ]
)
in
Source
在此之前,在 Power Query 编辑器 > 管理参数 > 添加名为 Query_Parameter
的新参数,其中包含 2 个文本值作为列表:“Sample”和“Full”,并基于此参数查询的来源变化。只需将“select 1”替换为任何缩小行的内容,如“select top 1000...”或添加 WHERE 条件。 “select 2”是包含完整行集的查询。
我希望我在 PBI 中的 SQL 查询由参数定义。 Parameter1 是两个值 Big
和 Small
的列表。如果我将 Parameter1 设置为 Small
,那么我只想加载一个数据样本。我是这样做的:
let
ReturnQueryVar = (optional x) =>
if Parameter1 = "Small"
then " and Product in (1, 2, 3)"
else "",
Source = Sql.Database(
"myservername",
"mydatabase",
[
Query = "
select *
from table
where
1=1"
& ReturnQuery()
]
)
in
Source
我收到这个错误:
Expression.Error: 名称 'ReturnQuery' 未被识别。确保拼写正确。
更新。
捂脸!这是一个错字。 ReturnQuery 应该是 ReturnQueryVar.
不过,我想留下以下部分的问题:
ReturnQueryVar = (optional x) =>
if Parameter1 = "Small"
then " and Product in (1, 2, 3)"
else ""
PowerQuery 是否有 IF 的语法:
TextVar = IF(Parameter1 = 'S', 'This', 'That' )
我没见过这样的语法,但如果你愿意,你可以创建一个函数来实现,基本上是 Power Query
的 IF
语句的“容器”。
例如,您可以使用以下内容创建名为 IF
的 Blank Query
。
(cond as logical, if_true as any, if_false as any ) =>
if cond then if_true else if_false
在任何地方使用该函数都会有类似的结果和 IF 语句。
我只是在这里分享我最终得到的一个 PowerQuery 片段。此代码允许您在两个备用查询之间选择一个参数 - 第一个用于样本,另一个用于完整行集。它只允许从大型 table 下载一小部分行到 Power BI Desktop。
let
QueryCode = if Query_Parameter = "Sample"
then
"select 1"
else
"select 2",
Source = Sql.Database(
"MyServer",
"MyDataBase",
[ Query = QueryCode ]
)
in
Source
在此之前,在 Power Query 编辑器 > 管理参数 > 添加名为 Query_Parameter
的新参数,其中包含 2 个文本值作为列表:“Sample”和“Full”,并基于此参数查询的来源变化。只需将“select 1”替换为任何缩小行的内容,如“select top 1000...”或添加 WHERE 条件。 “select 2”是包含完整行集的查询。