如何根据 NULL 条件删除 SQL 中的行



我刚开始学习SQL;我创建了一个表。学习了插入命令并在 2 行中插入了值。但是,我在第三个中插入了空值。

现在我想删除第三行,它有 2 列,其中没有值。

我正在使用以下查询:

delete employee where city=null;

它似乎不起作用!

根据 SQL 92 标准,许多具有空值的逻辑操作,例如

   > null
   = null
  and null
   or null
  not null

始终返回 null并且永远不会返回 true)。一些DBMS(例如Oracle)严格遵循此规则,某些DBMS(MS SQL)可以具有null = null返回true的模式,而不是必需的null。为了与SQL 92以及(几乎)所有DBMS兼容,您应该使用is nullis not null标准比较,在这种情况下,您应该使用或标准比较。

  delete from employee 
        where city is null -- <- Standard comparison 
你需要

is null"运算符":

delete from employee where city is null;

这是因为在SQL中,没有什么等于NULL

不能将 = 与 NULL 一起使用。相反,请使用:

delete employee where city is null;

为了实现这一点您必须编写此查询

DELETE from table_name WHERE city IS NULL;

此查询将删除行/记录 其中城市为空

在这里你知道你已经在城市列中添加了Null,所以用is null检查将起作用,但也可以在城市列中添加一个空字符串。因此,如果您的业务条件类似于从员工表中删除所有记录,其中城市为空或为空,即没有值,您应该写为:

delete from employee where isnull(city,'')='';

更改它:

从城市为空的table_name中删除

从城市 = 空的table_name中删除

相关内容

  • 没有找到相关文章

最新更新