transtypage de chaîne de caractères en entier - Postgres
Je suis de l'importation de données à partir d'une table qui a cru se nourrit en Varchar, j'ai besoin d'importer une colonne de type varchar dans une colonne de type chaîne. J'ai essayé d'utiliser le <column_name>::integer
ainsi que to_number(<column_name>,'9999999')
mais j'obtiens des erreurs, il y a quelques champs vides, j'ai besoin de récupérer le plus vide ou null dans la nouvelle table.
Bien vouloir me faire savoir si il existe une fonction pour la même chose.
- Pourriez-vous nous montrer le message d'erreur? Qui pourrait aider
Vous devez vous connecter pour publier un commentaire.
Sauvage deviner: Si votre valeur est une chaîne vide, vous pouvez utiliser NULLIF à le remplacer par une valeur NULL:
Vous pouvez même aller plus loin et restreindre sur ce fusionné domaine tels que, par exemple:-
Si vous avez besoin de traiter des colonnes vides comme
NULL
s, essayez ceci:D'autre part, si vous avez des
NULL
valeurs que vous devez éviter, essayez de:Je suis d'accord, le message d'erreur serait d'une grande aide.
La seule façon que j'ai réussi à ne pas avoir une erreur à cause de la valeur NULL ou de caractères spéciaux ou chaîne vide est de faire ceci:
WHERE <column> != NULL
?Je ne suis pas en mesure de commenter (trop peu de réputation? Je suis assez nouveau) sur Son poste.
Sur mon PG installation
to_number(NULL)
ne fonctionne pas, donc ma solution serait:NULLIF()
approche. La norme définit en fait NULLIF comme une forme de l'AFFAIRE de prédicat.Si la valeur contient des caractères non numériques, vous pouvez convertir la valeur d'un entier comme suit:
Le CAS de l'opérateur vérifie la < colonne>, si elle correspond à l'entier de modèle, il convertit le taux en entier, sinon elle renvoie 0