条件如果在电源查询的高级编辑器

我有一个字段命名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行分配给一个variables。 每个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 

在query2中,您可以构buildselect语句。 我简化了它,因为你也与双引号冲突。

我想你在找:

 if Not IsNull(field) then .... 

有些数据types可能需要使用IsEmpty()或'field不是Nothing'来检查。 取决于数据types和你正在使用的是什么。

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

为了满足这个要求,我将使用PQ UI构build一个全新的查询来从Oracle中select学生表/视图,然后使用UI过滤任何值的[id]列。

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

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

这是从脚本生成的一个小的改变,而不是从头开始写整个事情。