【问题标题】:sql query-Joining 2 tables with a condition of a column but their values are nullsql 查询 - 以列的条件连接 2 个表,但它们的值为空
【发布时间】:2014-08-28 11:15:30
【问题描述】:

如果Table ATable B 有一个名为ViewType 的列,并且它们的所有值都是NULL。 当我们尝试在 A.ViewType =B.ViewType 条件下加入 2 个表时,我们应该期待什么结果? 作为答案的所有行或作为答案影响的 0 行?

【问题讨论】:

  • 你会期望没有行。几乎所有与NULL 的比较都返回“未知”,在比较中被视为错误。
  • 我不明白这种查询的目的。如果A.ViewTypeNULL,我不希望在INNER JOIN 的结果中出现这一行。因此,如果表 A 的每个 ViewType 都是 NULL,我希望没有行作为结果。

标签: mysql sql sql-server join


【解决方案1】:

答案将是 0 行受影响。

- 脚本开始

SELECT * FROM A INNER JOIN B ON A.ViewType = B.ViewType

脚本结束

【讨论】:

    【解决方案2】:

    请在where子句中使用条件:

    WHERE ISNULL(a.viewtype,1) = ISNULL(b.viewtype,1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-03
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 2017-07-28
      相关资源
      最近更新 更多