PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Umwandlung von Text in int, wenn die Spalte in PostgreSQL sowohl int- als auch NULL-Werte enthält

Tatsächlich können Sie NULL umwandeln int, Sie können einfach keine leere Zeichenfolge in int umwandeln. Angenommen, Sie möchten NULL in der neuen Spalte, wenn data1 einen leeren String oder NULL enthält, können Sie etwa so vorgehen:

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

Wenn Sie eine andere Logik wünschen, können Sie zum Beispiel (leerer String konvertiert zu -1):

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