0

我正在将数据从一个数据库迁移到另一个数据库。

我有一个数字列。其中包含一些值、一些 0 和一些空值。我的直觉是将所有的 0 转换为 NULL。这将存储一个可选的、用户提供的号码。

有什么理由不将所有 0 转换为 NULL?

4

2 回答 2

1

不将零转换为 null 的一个原因是它们在数学上意味着不同的东西。

  1. 如果我有数字 (0,10,20),则它们的平均值为 10。如果我将零转换为空值,则平均值变为 15。
  2. 如果我有数字 5 和 0,它们加在一起就是 5。把 0 变成空值,然后加在一起它们就变成了 NULL。
  3. null、-5 和 10 的默认顺序是 (-5, 10, NULL),除非您使用 NULLS FIRST,在这种情况下您会得到 (NULL, -5, 10)。显然,零排序是 (-5, 0, 10)。

因此,如果这些是用于数字函数的数字,那么您需要根据应用程序要求(您没有给出)使用 NULL 和零。

也许如果你给出了一些数字代表什么的指示,你可能会得到一个有用的答案。

于 2009-08-06T22:36:52.437 回答
1

索引 NULL存在问题(通常它们不是)。

如果您的意思是 0,请使用 0。改用 NULL 会更改您的排序顺序并影响算术(和比较)。NULL 用于表示没有值。将它们用作 0(这一个值)的替代品是推动您的设计而不是......设计的微优化的一个很好的例子。

于 2009-08-06T15:55:07.790 回答