IS NULL 和 IS NOT NULL 条件

如果紧接在 IS 关键字之前的术语指定下列未定义的值之一,则满足该 IS NULL 条件:

反之,如果您使用 IS NOT NULL 运算符,则当 column 包含一个非空的值时,或当紧接在 IS NOT NULL 关键字之前的 expression 求值不为空时,满足该条件。

假设您希望在可包含 NULL 值的列上执行算术计算。您可创建表、将值插入到表内,然后为了数据计算执行一使用将空值转换为 0 的通用的 CASE 表达式的查询:

CREATE TABLE employee (emp_id INT, savings_in_401k INT, total_salary INT);  
      
      INSERT INTO employee VALUES(1, 5000, 40000); 
      INSERT INTO employee VALUES(2, 0, 40000); 
      INSERT INTO employee VALUES(3, NULL, 100000);  
      
      SELECT emp_id, savings_in_401k AS employer_match FROM employee WHERE
      CASE WHEN(savings_in_401k IS NULL) THEN 0
      ELSE savings_in_401k END * 0.06 > 0;  
此示例展示通过使用 CASE 表达式中的 IS NULL,您可为不可计算的条目提供值,因为空不是有效的数值。

如果该列包含空值,或如果该表达式由于包含一个或多个空值而不可求值,则满足 IS NULL 条件。如果您使用 IS NOT NULL 运算符,则当运算对象是不为空的列值,或是求值不为空的表达式时,满足该条件。