我刚开始学习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 null
或is 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中删除