2012-05-18 20 views
16

Utilizo la base de datos PostgreSQL y en una tabla tengo la columna de fecha y hora edit_user. Algunas filas están en blanco y estas filas me gustaría eliminarlas.Borrar filas vacías

me trataron

DELETE FROM tabla WHERE edit_user = "";

pero me dio el error

LÍNEA 1: eliminar de la tabla donde edit_user = "";

Además, pensé en la columna como un valor en blanco podría ser 0000-00-00, pero no la hay.

¿Cómo debo ejecutar este comando correctamente?

Respuesta

44
DELETE FROM table WHERE edit_user IS NULL; 
1

Creo que su problema es que está buscando una cadena vacía con comillas dobles en lugar de comillas simples. Trate sólo cambiar a:

DELETE FROM table WHERE edit_user='' 
2

Para eliminar filas vacías en la tabla

sintaxis:

DELETE FROM table_name 
WHERE column_name IS NULL; 

ejemplo: nombre

Tabla: Datos ---> columna nombre: pkdno

DELETE FROM data 
WHERE pkdno IS NULL; 

Respuesta: 5 filas eliminadas. (sayso)

+0

Phil ya proporcionan la misma respuesta. No estás agregando nada nuevo. –

+0

Claro que esta es la misma respuesta que Phil, pero me gusta más esta respuesta porque tiene documentación. –

7

Si está intentando eliminar espacios vacíos, intente con ='' en lugar de is null. Por lo tanto, si su fila contiene espacios vacíos, is null no capturará esos registros. El espacio vacío no es nulo y nulo no es espacio vacío.

Dec Hex  Binary Char-acter Description 
0 00 00000000  NUL  null 

32 20 00100000  Space  space 

por lo que recomiendo:

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