PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come eseguire il cast da testo a int se la colonna contiene valori sia int che NULL in PostgreSQL

In realtà, puoi trasmettere NULL su int, non puoi semplicemente eseguire il cast di una stringa vuota su int. Supponendo che tu voglia NULL nella nuova colonna se data1 contiene una stringa vuota o NULL, puoi fare qualcosa del genere:

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

Se vuoi un'altra logica, puoi usare ad esempio (la stringa vuota viene convertita in -1):

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