如何基于NULL条件删除SQL中的行

时间:2014-02-24 13:04:40

标签: sql

我刚开始学习SQL;我创建了一张桌子。学习插入命令和插入值分为2行。但是我在第3版中插入了空值。

现在我要删除第3行,其中有2列没有值。

我正在使用以下查询:

delete employee where city=null;

它似乎没有用!

6 个答案:

答案 0 :(得分:5)

根据 SQL 92 标准,许多逻辑操作与空值一样

   > null
   = null
  and null
   or null
  not null

应始终返回null (并且永远不会为真)。某些DBMS(例如Oracle)严格遵循此规则,某些(MS SQL)可以使用null = null返回 true 的模式,而不是 null 。为了与SQL 92 分开,所以(几乎)所有DBMS都是如此,你应该使用is nullis not null标准比较

  delete from employee 
        where city is null -- <- Standard comparison 

答案 1 :(得分:3)

你不能使用= NULL。相反,使用:

delete employee where city is null;

答案 2 :(得分:3)

您需要is null“运算符”:

delete from employee where city is null;

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

答案 3 :(得分:0)

您知道自己在城市列中添加了Null,因此使用is null进行检查即可,但也可以在城市列中添加空字符串。因此,如果您的业务条件类似于删除employee表中的所有记录,其中city为null或为空,即没有值,则应写为:

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

答案 4 :(得分:0)

要实现这一目标 您将不得不编写此查询

DELETE from table_name WHERE city IS NULL;

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

答案 5 :(得分:-3)

改变它:

table_name 中删除,其中city为null

table_name 中删除,其中city = null