PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment convertir du texte en int si la colonne contient à la fois des valeurs int et NULL dans PostgreSQL

En fait, vous pouvez caster NULL en int, vous ne pouvez tout simplement pas convertir une chaîne vide en int. En supposant que vous vouliez NULL dans la nouvelle colonne si data1 contient une chaîne vide ou NULL, vous pouvez faire quelque chose comme ceci :

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

Si vous voulez une autre logique, vous pouvez utiliser par exemple (chaîne vide convertie en -1) :

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