我正在尝试编写一个选择多个值的查询。我只希望它选择其中一个值,如果它不是null。
我正在尝试使用案例,但它是错误的。
SELECT pick_no,
pd.product,
from_warehouse,
to_warehouse,
qty_pick,
qty_check,
qty_picked,
qty_checked,
long_description,
ROUND(qty_pick / stk.pallet_unit_qty, 2) as [PalletQty],
ph.date_picking,
stk.bin_no,
CASE WHEN qty_picked <> null
THEN ROUND(qty_picked / stk.pallet_unit_qty, 2) as [pltCheck]
ELSE '0' END
FROM
答案 0 :(得分:2)
Null是一个棘手的野兽,你不能在它上面使用相等的操作数。当第一个子句返回CHAR
时,你的else子句返回FLOAT
:
CASE WHEN qty_picked IS NOT NULL
THEN ROUND(qty_picked / stk.pallet_unit_qty, 2) as [pltCheck]
ELSE 0 END
实现目标的更简单方法是使用COALESCE
:
COALESCE(ROUND(qty_picked / stk.pallet_unit_qty, 2),0) as [pltCheck]