跳转至

处理空值

空值可能来自源 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 输出采用可保留空值的整数类型。
  • 如果希望检查关联质量,可以先保留空值并输出对应标识字段。