删除空行

时间:2012-05-18 14:35:31

标签: sql postgresql

我使用PostgreSQL数据库,在一个表中我有datetime列 edit_user 。有些行是空白的,我想删除这些行。

我试过

DELETE FROM table WHERE edit_user="";

但是我收到了错误

  

第1行:从表中删除edit_user =“”;

另外,我在专栏中认为空白值可能是 0000-00-00 ,但没有。

我应该如何正确执行此命令?

5 个答案:

答案 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) = '';