我有一个名为field
的字段,我想看看它是否为null,但我在查询中出错,我的代码是这样的:
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.
答案 0 :(得分:5)
您需要将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
在query2中,您可以构建select语句。我简化了它,因为你也与双引号有冲突。
答案 1 :(得分:0)
我认为您正在寻找:
if Not IsNull(field) then ....
您可能需要使用IsEmpty()或&#39;字段检查的某些数据类型是“无”#39;太。取决于数据类型和您正在使用的内容。
要进行故障排除,最好尝试设置断点并找出错误发生的位置,并观察变量以防止该特定值。
答案 2 :(得分:0)
为了满足这个要求,我将使用PQ UI构建一个新的Query,从Oracle中选择学生表/视图,然后使用UI过滤任何值的[id]列。
然后在高级编辑器中,我将使用Condition +字段步骤中的代码编辑生成的FilteredRows行,例如
FilteredRows = Table.SelectRows(TESTING_students, each [id] = Excel.CurrentWorkbook(){[Name="test_table"]}{0}[fieldColumn])
这是对生成的脚本的一个小改动,而不是尝试从头开始编写整个内容。