在 SQL 中,当 WHERE 子句被输入 NULL 条件时会发生什么?

  • 本文关键字:条件 NULL SQL WHERE 子句 sql null
  • 更新时间 :
  • 英文 :


以下 SQL 查询的结果包含多少个元组?

SELECT A.Id FROM A 
WHERE A.Age > ALL(NULL)

A 由 4 个元组组成,ID 是主键。

答案应该是 4 还是 0?

它不会返回任何行。

为什么? 您将NULL与空集混淆了。 您有一个要与之比较的值。 值为NULL。 几乎任何比较都将NULL- 这被视为错误。 因此,查询不返回任何行。

这与空集完全不同。 如果值集中没有行,则查询将返回所有行。 例如:

SELECT count(*) 
FROM (VALUES (1,1), (1,2), (1,3), (1,4)) a(id, age)
WHERE A.Age > ALL (SELECT 0 WHERE 1=0);

最新更新