sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo convertir de texto a int si la columna contiene valores int y NULL en PostgreSQL

En realidad, puedes lanzar NULL a int, simplemente no puedes convertir una cadena vacía a int. Suponiendo que desea NULL en la nueva columna si data1 contiene una cadena vacía o NULL, puede hacer algo como esto:

UPDATE table SET data2 = cast(nullif(data1, '') AS int);

Si desea alguna otra lógica, puede usar, por ejemplo (la cadena vacía se convierte en -1):

UPDATE table SET data2 = CASE WHEN data1 = '' THEN -1 ELSE cast(data1 AS int) END;