我使用 PostgreSQL 数据库,在一张表中我有 datetime 列edit_user。有些行是空白的,我想删除这些行。
我试过
DELETE FROM table WHERE edit_user="";
但我得到了错误
第 1 行:从表中删除 edit_user="";
另外,我认为列中的空白值可能是0000-00-00,但没有。
我应该如何正确执行这个命令?
我使用 PostgreSQL 数据库,在一张表中我有 datetime 列edit_user。有些行是空白的,我想删除这些行。
我试过
DELETE FROM table WHERE edit_user="";
但我得到了错误
第 1 行:从表中删除 edit_user="";
另外,我认为列中的空白值可能是0000-00-00,但没有。
我应该如何正确执行这个命令?
DELETE FROM table WHERE edit_user IS NULL;
如果您尝试删除空格,请尝试使用=''
而不是is null
。因此,如果您的行包含空格,is 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,'')))='';
我相信您的问题是您正在使用双引号而不是单引号检查空字符串。尝试更改为:
DELETE FROM table WHERE edit_user=''
删除表中的空行
句法:
DELETE FROM table_name
WHERE column_name IS NULL;
例子:
表名:数据--->列名:pkdno
DELETE FROM data
WHERE pkdno IS NULL;
答:删除了 5 行。(这样说的)
我有另一个解决方案,对我有用:
DELETE FROM MySchema.MyTable WHERE TheColumn IS NULL OR TRIM(TheColumn) = '';