条件 IF 在 Power Query 高级编辑器中

Condition IF In Power Query's Advanced Editor

我有一个名为field的字段,我想看看它是否为空,但是我在查询时出错,我的代码是这样的:

let
    Condition= Excel.CurrentWorkbook(){[Name="test_table"]}[Content],
    field= Condition{0}[fieldColumn],
    query1="select * from students",
    if field <> null then query1=query1 & " where id = '"& field &"',
    exec= Oracle.Database("TESTING",[Query=query1])
in
    exec

但是我的条件出错了,你能找出错误吗? 我得到了 Expression.SyntaxError: Token Identifier expected.

我想你正在寻找:

if Not IsNull(field) then ....

您可能还需要使用 IsEmpty() 或 'field is Not Nothing' 检查某些数据类型。取决于数据类型和您使用的是什么。

要排除故障,最好尝试设置断点并定位错误发生的位置并观察变量以防止出现该特定值。

您需要将 if 行分配给一个变量。每M行需要以赋值开头:

let
Condition= Excel.CurrentWorkbook(){[Name="test_table"]}[Content],
field= Condition{0}[fieldColumn],
query1="select * from students",
query2 = if field <> null then query1 & " some stuff" else " some other stuff",
exec= Oracle.Database("TESTING",[Query=query2])
in
exec

在查询 2 中,您可以构建 select 语句。我简化了它,因为你也与双引号有冲突。

为了满足这个要求,我会使用 PQ UI 为来自 Oracle 的 select 学生 table/view 创建一个新的查询,然后使用 UI 来根据任何值过滤 [id] 列。

然后在高级编辑器中,我将使用您的条件 + 字段步骤中的代码编辑生成的 FilteredRows 行,例如

FilteredRows = Table.SelectRows(TESTING_students, each [id] = Excel.CurrentWorkbook(){[Name="test_table"]}{0}[fieldColumn])

这是对生成脚本的微小改动,而不是试图从头开始编写整个脚本。