如何删除数据为NULL的行?SQL删除Age=NULL行未生效是什么原因
问题原因
SQL中NULL代表未知值,无法通过常规的等值运算符=进行比较判断。任何值和NULL做=、!=、大小比较等操作的返回结果都是UNKNOWN,无法满足WHERE子句的匹配条件,因此delete from tblPerson where Age = NULL不会匹配到任何行,自然无法完成预期的删除操作。
正确操作
将判断条件替换为SQL专门用于NULL值判断的IS NULL语法即可:
DELETE FROM tblPerson WHERE Age IS NULL;
如果后续需要筛选非NULL的字段值,对应使用IS NOT NULL即可,不要使用!= NULL的写法,后者同样会因为比较逻辑失效无法得到预期结果。
内容的提问来源于stack exchange,提问作者Mahantesh. N. Hadimani.
相关产品推荐
相关产品推荐

