处理空值¶
空值可能来自源 Excel 的空单元格,也可能来自 LEFT JOIN:主表记录没有找到匹配项时,右侧 Sheet 的列会为空。
先决定业务含义¶
空值并不总等于零。例如“数量为空”可能适合按 0 计算,“折扣率为空”可能适合按 1 计算,而“客户姓名为空”通常应该保持为空,以便发现资料缺失。
在转换表达式中使用 coalesce(字段, 默认值):
coalesce(i.quantity, 0) * coalesce(i.unit_price, 0)
如果数量或单价缺失,行金额为 0。缺失折扣按原价计算则可写:
o.amount * coalesce(o.discount_rate, 1)
过滤空值¶
“过滤条件”支持:
IS NULL:只保留空值;IS NOT NULL:只保留非空值。
这两个运算符不需要填写“值1”和“值2”。例如筛出关联不到客户的订单,可对 c.customer_id 使用 IS NULL。
注意事项¶
- 不要无差别地把所有空值改成 0;默认值应体现业务规则。
- 目标类型转换不会替你决定空值的含义。
integer输出采用可保留空值的整数类型。- 如果希望检查关联质量,可以先保留空值并输出对应标识字段。