我在Excel电子表格中有一个参数,用于序列号和工单号。让我们说Cell本身被命名为SerialNumber和WorkOrderNumber
请注意,有时我们知道序列号或工作订单的值,但有时我们不会
在PowerQuery中使用Get Parameter函数
let GetValue=(rangeName) =>
let
name = Excel.CurrentWorkbook(){[Name=rangeName]}[Content],
value = name{0}[Column1]
in
value
in GetValue
我能够在下面的let语句中将SerialNumber和WorkOrderNumber作为名为SerialNumberP和WorkOrderNumberP的参数获取:
Let
SerialNumberP = GetParamater("SerialNumber"),
WorkOrderNumberP = GetParameter("WorkOrderNumber")
然后我有一个SQL Select语句:
Select
a.SerialNumber,
b.WorkOrderNumber,
a.PartNumber,
a.BatchNumber,
a.CreateDate,
b.CreatedBy,
b.ComponentSerialNumber,
我们的数据库位于网络中的SQL数据库中,因此我的From语句是:
From [Database].[Category].[Table1] as a
inner join [Database].[Category].[Table2] as b
on a.WorkOrderNumber = b.WorkOrderNumber
现在我想使用where语句,我可以搜索已知的SerialNumber或WorkOrderNumber,或两者都适用。但是当我使用以下代码时:
Where
a.SerialNumber in ('"& SerialNumberP &"')
and b.WorkOrderNumber in ('"& WorkOrderNumberP &"')
当一个字段为空(SerialNumber或WorkOrderNumber)时,它会检测到空字段为空且查询未通过。
我得到的错误是:DataSource.Error:Microsoft SQL:此数据库功能不支持查询选项'查询'价值' null'。如果我填写两个字段,它就可以了
最好的方法是什么?
提前致谢
编辑:我已尝试在Where条件中使用If语句,但它似乎无法正常工作
e.g。
Where
If SerialNumberP Is Not Null Then a.SerialNumber In ('"& SerialNumberP &"')
If WorkOrderNumberP Is Not Null Then b.WorkOrderNumber In ('"& WorkOrderNumberP &"')
答案 0 :(得分:0)
尝试一下:
Where
(a.SerialNumber Is Null Or a.SerialNumber in ('"& SerialNumberP &"')) and
(b.WorkOrderNumber Is Null Or b.WorkOrderNumber in ('"& WorkOrderNumberP &"'))