我使用PostgreSQL数据库,在一个表中我有datetime列 edit_user 。有些行是空白的,我想删除这些行。
我试过
DELETE FROM table WHERE edit_user="";
但是我收到了错误
第1行:从表中删除edit_user =“”;
另外,我在专栏中认为空白值可能是 0000-00-00 ,但没有。
我应该如何正确执行此命令?
答案 0 :(得分:50)
DELETE FROM table WHERE edit_user IS NULL;
答案 1 :(得分:9)
如果您要删除空格,请尝试使用=''
代替is null
。因此,如果您的行包含空格,is null
将不会捕获这些记录。空白空间不为null,null不是空白空间。
Dec Hex Binary Char-acter Description
0 00 00000000 NUL null
32 20 00100000 Space space
所以我建议:
delete from foo_table where bar = ''
#or
delete from foo_table where bar = '' or bar is null
#or even better ,
delete from foo_table where rtrim(ltrim(isnull(bar,'')))='';
答案 2 :(得分:2)
我认为您的问题是您使用双引号而不是单引号检查空字符串。尝试更改为:
DELETE FROM table WHERE edit_user=''
答案 3 :(得分:2)
删除表格中的空行
<强>语法:强>
DELETE FROM table_name
WHERE column_name IS NULL;
示例:强>
表名:数据---&gt;列名:pkdno
DELETE FROM data
WHERE pkdno IS NULL;
答案:已删除5行。 (说)
答案 4 :(得分:0)
我有另一个对我有用的解决方案:
DELETE FROM MySchema.MyTable WHERE TheColumn IS NULL OR TRIM(TheColumn) = '';